From f465823f6d0969dc8ea2c6666b227d02d6dea25e Mon Sep 17 00:00:00 2001 From: Jakub Pawlowski Date: Wed, 9 Nov 2016 16:51:09 -0800 Subject: [PATCH] BLE OOB Pairing - parse address type (5/5) When address type is not parsed, creating bond to devices not using random address is impossible. Bug: 32780409 Test: try pairing with nRF52DK using random address Change-Id: Ie6cc1f8c008d43b2acd021b47f9bbfb1f63472e8 --- core/java/android/bluetooth/OobData.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/core/java/android/bluetooth/OobData.java b/core/java/android/bluetooth/OobData.java index f53ca94a1d5c5..9e87230c686e4 100644 --- a/core/java/android/bluetooth/OobData.java +++ b/core/java/android/bluetooth/OobData.java @@ -30,10 +30,24 @@ import android.util.Log; * @hide */ public class OobData implements Parcelable { + private byte[] leBluetoothDeviceAddress; private byte[] securityManagerTk; private byte[] leSecureConnectionsConfirmation; private byte[] leSecureConnectionsRandom; + public byte[] getLeBluetoothDeviceAddress() { + return leBluetoothDeviceAddress; + } + + /** + * Sets the LE Bluetooth Device Address value to be used during LE pairing. + * The value shall be 7 bytes. Please see Bluetooth CSSv6, Part A 1.16 for + * a detailed description. + */ + public void setLeBluetoothDeviceAddress(byte[] leBluetoothDeviceAddress) { + this.leBluetoothDeviceAddress = leBluetoothDeviceAddress; + } + public byte[] getSecurityManagerTk() { return securityManagerTk; } @@ -66,6 +80,7 @@ public class OobData implements Parcelable { public OobData() { } private OobData(Parcel in) { + leBluetoothDeviceAddress = in.createByteArray(); securityManagerTk = in.createByteArray(); leSecureConnectionsConfirmation = in.createByteArray(); leSecureConnectionsRandom = in.createByteArray(); @@ -77,6 +92,7 @@ public class OobData implements Parcelable { @Override public void writeToParcel(Parcel out, int flags) { + out.writeByteArray(leBluetoothDeviceAddress); out.writeByteArray(securityManagerTk); out.writeByteArray(leSecureConnectionsConfirmation); out.writeByteArray(leSecureConnectionsRandom);