aboutsummaryrefslogtreecommitdiff
path: root/framework/java/android/bluetooth/BluetoothAdapter.java
diff options
context:
space:
mode:
authorYunsik Bae <yunsik.bae@samsung.com>2021-07-20 06:56:50 +0000
committerMartin Brabham <optedoblivion@google.com>2021-07-20 11:20:43 -0700
commitf90d578773ae80c01eb94f2a34b1c1718a9d4ed7 (patch)
tree626f0f53259bd0fee5726762290203325cbec295 /framework/java/android/bluetooth/BluetoothAdapter.java
parent6106c3602038e5cb2f6a283322a3be382425cd59 (diff)
Unify the mismatch in the byte order of the address.
Bluetooth address should check MSB for AddrType based on Spec. (BT Core Spec v 5.2 | Vol 6, Part B, 1.3 DEVICE ADDRESS) Bluetooth address meaning is not unified in the current Android framework layer. Because of this, cannot register scanfilter with the intended address format. Bug: 180466950 Test: manual Tag: #compatibility Change-Id: I59a1b5538e4f3fea77a98cba2aa46649fc32ac6b Merged-In: I59a1b5538e4f3fea77a98cba2aa46649fc32ac6b
Diffstat (limited to 'framework/java/android/bluetooth/BluetoothAdapter.java')
-rw-r--r--framework/java/android/bluetooth/BluetoothAdapter.java12
1 files changed, 6 insertions, 6 deletions
diff --git a/framework/java/android/bluetooth/BluetoothAdapter.java b/framework/java/android/bluetooth/BluetoothAdapter.java
index f5ab2ab744..8398be1af4 100644
--- a/framework/java/android/bluetooth/BluetoothAdapter.java
+++ b/framework/java/android/bluetooth/BluetoothAdapter.java
@@ -3518,22 +3518,22 @@ public final class BluetoothAdapter {
}
/**
- * Determines whether a String Bluetooth address, such as "00:43:A8:23:10:F0"
+ * Determines whether a String Bluetooth address, such as "F0:43:A8:23:10:00"
* is a RANDOM STATIC address.
*
- * RANDOM STATIC: (addr & 0b11) == 0b11
- * RANDOM RESOLVABLE: (addr & 0b11) == 0b10
- * RANDOM non-RESOLVABLE: (addr & 0b11) == 0b00
+ * RANDOM STATIC: (addr & 0xC0) == 0xC0
+ * RANDOM RESOLVABLE: (addr & 0xC0) == 0x40
+ * RANDOM non-RESOLVABLE: (addr & 0xC0) == 0x00
*
* @param address Bluetooth address as string
- * @return true if the 2 Least Significant Bits of the address equals 0b11.
+ * @return true if the 2 Most Significant Bits of the address equals 0xC0.
*
* @hide
*/
public static boolean isAddressRandomStatic(@NonNull String address) {
requireNonNull(address);
return checkBluetoothAddress(address)
- && (Integer.parseInt(address.split(":")[5], 16) & 0b11) == 0b11;
+ && (Integer.parseInt(address.split(":")[0], 16) & 0xC0) == 0xC0;
}
/** {@hide} */