diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2021-03-22 03:15:47 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-03-22 03:15:47 +0000 |
commit | 1cac38b565e62b93484c6aba6fb6c5cd6fd931cc (patch) | |
tree | 13c5799168ab5ece237f43ba2f99f970f5631d2a /framework/java/android/bluetooth/BluetoothAdapter.java | |
parent | 91ef442293e9be65e9597da504c18fcb9539c0fc (diff) | |
parent | 2c15f0cbf345fae5e5b5826a32665074f1e6d289 (diff) |
Merge "Add new @SystemApi for specifying AddressType and IRK" am: 2c15f0cbf3
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1641559
Change-Id: I616502ee58d95cbc20fd38b395f7f0e294b5713e
Diffstat (limited to 'framework/java/android/bluetooth/BluetoothAdapter.java')
-rw-r--r-- | framework/java/android/bluetooth/BluetoothAdapter.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/framework/java/android/bluetooth/BluetoothAdapter.java b/framework/java/android/bluetooth/BluetoothAdapter.java index cc0b22afe3..38863c2c8c 100644 --- a/framework/java/android/bluetooth/BluetoothAdapter.java +++ b/framework/java/android/bluetooth/BluetoothAdapter.java @@ -52,6 +52,8 @@ import android.os.SystemProperties; import android.util.Log; import android.util.Pair; +import com.android.internal.util.Preconditions; + import java.io.IOException; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -3118,6 +3120,25 @@ public final class BluetoothAdapter { return true; } + /** + * Determines whether a String Bluetooth address, such as "00:43:A8:23:10:F0" + * is a RANDOM STATIC address. + * + * RANDOM STATIC: (addr & 0b11) == 0b11 + * RANDOM RESOLVABLE: (addr & 0b11) == 0b10 + * RANDOM non-RESOLVABLE: (addr & 0b11) == 0b00 + * + * @param address Bluetooth address as string + * @return true if the 2 Least Significant Bits of the address equals 0b11. + * + * @hide + */ + public static boolean isAddressRandomStatic(@NonNull String address) { + Preconditions.checkNotNull(address); + return checkBluetoothAddress(address) + && (Integer.parseInt(address.split(":")[5], 16) & 0b11) == 0b11; + } + @UnsupportedAppUsage /*package*/ IBluetoothManager getBluetoothManager() { return mManagerService; |