diff options
| author | Dan Harms <danharms@google.com> | 2020-06-08 11:14:44 -0700 |
|---|---|---|
| committer | Dan Harms <danharms@google.com> | 2020-06-12 10:06:18 -0700 |
| commit | bb164b9524ab653fe19ac87bd13d8a14aa5c1763 (patch) | |
| tree | 4b84e5e778e03a3b76048234d8f7a6c67fe70118 /connected-device-lib/src | |
| parent | d8a3ba9e5800f64f296ba5343a2ff09af4a84aa2 (diff) | |
| download | platform_packages_apps_Car_libs-bb164b9524ab653fe19ac87bd13d8a14aa5c1763.tar.gz platform_packages_apps_Car_libs-bb164b9524ab653fe19ac87bd13d8a14aa5c1763.tar.bz2 platform_packages_apps_Car_libs-bb164b9524ab653fe19ac87bd13d8a14aa5c1763.zip | |
Move to default UUID for connection values
Also added configurable data UUID value for reconnect
advertisement.
Bug: 123164221
Test: Association and reconnect succeed with overlay
Change-Id: I3b0e796e790debf22dec66cfd0cd5abe40dcb80f
Diffstat (limited to 'connected-device-lib/src')
| -rw-r--r-- | connected-device-lib/src/com/android/car/connecteddevice/ConnectedDeviceManager.java | 6 | ||||
| -rw-r--r-- | connected-device-lib/src/com/android/car/connecteddevice/ble/CarBlePeripheralManager.java | 19 |
2 files changed, 19 insertions, 6 deletions
diff --git a/connected-device-lib/src/com/android/car/connecteddevice/ConnectedDeviceManager.java b/connected-device-lib/src/com/android/car/connecteddevice/ConnectedDeviceManager.java index b207ee01..4add85e3 100644 --- a/connected-device-lib/src/com/android/car/connecteddevice/ConnectedDeviceManager.java +++ b/connected-device-lib/src/com/android/car/connecteddevice/ConnectedDeviceManager.java @@ -153,6 +153,7 @@ public class ConnectedDeviceManager { UUID.fromString(context.getString(R.string.car_service_uuid)), UUID.fromString(context.getString(R.string.car_association_service_uuid)), UUID.fromString(context.getString(R.string.car_reconnect_service_uuid)), + UUID.fromString(context.getString(R.string.car_reconnect_data_uuid)), context.getString(R.string.car_bg_mask), UUID.fromString(context.getString(R.string.car_secure_write_uuid)), UUID.fromString(context.getString(R.string.car_secure_read_uuid)), @@ -167,6 +168,7 @@ public class ConnectedDeviceManager { @NonNull UUID serviceUuid, @NonNull UUID associationServiceUuid, @NonNull UUID reconnectServiceUuid, + @NonNull UUID reconnectDataUuid, @NonNull String bgMask, @NonNull UUID writeCharacteristicUuid, @NonNull UUID readCharacteristicUuid, @@ -175,8 +177,8 @@ public class ConnectedDeviceManager { new CarBleCentralManager(context, bleCentralManager, storage, serviceUuid, bgMask, writeCharacteristicUuid, readCharacteristicUuid), new CarBlePeripheralManager(blePeripheralManager, storage, associationServiceUuid, - reconnectServiceUuid, writeCharacteristicUuid, readCharacteristicUuid, - MAX_ADVERTISEMENT_DURATION, defaultMtuSize)); + reconnectServiceUuid, reconnectDataUuid, writeCharacteristicUuid, + readCharacteristicUuid, MAX_ADVERTISEMENT_DURATION, defaultMtuSize)); } @VisibleForTesting diff --git a/connected-device-lib/src/com/android/car/connecteddevice/ble/CarBlePeripheralManager.java b/connected-device-lib/src/com/android/car/connecteddevice/ble/CarBlePeripheralManager.java index ebe05dcc..44363db1 100644 --- a/connected-device-lib/src/com/android/car/connecteddevice/ble/CarBlePeripheralManager.java +++ b/connected-device-lib/src/com/android/car/connecteddevice/ble/CarBlePeripheralManager.java @@ -101,6 +101,8 @@ public class CarBlePeripheralManager extends CarBleManager { private final UUID mReconnectServiceUuid; + private final UUID mReconnectDataUuid; + private final BluetoothGattCharacteristic mWriteCharacteristic; private final BluetoothGattCharacteristic mReadCharacteristic; @@ -132,6 +134,7 @@ public class CarBlePeripheralManager extends CarBleManager { * @param connectedDeviceStorage Shared {@link ConnectedDeviceStorage} for companion features. * @param associationServiceUuid {@link UUID} of association service. * @param reconnectServiceUuid {@link UUID} of reconnect service. + * @param reconnectDataUuid {@link UUID} key of reconnect advertisement data. * @param writeCharacteristicUuid {@link UUID} of characteristic the car will write to. * @param readCharacteristicUuid {@link UUID} of characteristic the device will write to. * @param maxReconnectAdvertisementDuration Maximum duration to advertise for reconnect before @@ -142,6 +145,7 @@ public class CarBlePeripheralManager extends CarBleManager { @NonNull ConnectedDeviceStorage connectedDeviceStorage, @NonNull UUID associationServiceUuid, @NonNull UUID reconnectServiceUuid, + @NonNull UUID reconnectDataUuid, @NonNull UUID writeCharacteristicUuid, @NonNull UUID readCharacteristicUuid, @NonNull Duration maxReconnectAdvertisementDuration, @@ -150,6 +154,7 @@ public class CarBlePeripheralManager extends CarBleManager { mBlePeripheralManager = blePeripheralManager; mAssociationServiceUuid = associationServiceUuid; mReconnectServiceUuid = reconnectServiceUuid; + mReconnectDataUuid = reconnectDataUuid; mDescriptor.setValue(BluetoothGattDescriptor.ENABLE_INDICATION_VALUE); mWriteCharacteristic = new BluetoothGattCharacteristic(writeCharacteristicUuid, BluetoothGattCharacteristic.PROPERTY_NOTIFY, @@ -245,7 +250,7 @@ public class CarBlePeripheralManager extends CarBleManager { return; } startAdvertising(mReconnectServiceUuid, mAdvertiseCallback, /* includeDeviceName= */ false, - advertiseData); + advertiseData, mReconnectDataUuid); } /** @@ -422,7 +427,8 @@ public class CarBlePeripheralManager extends CarBleManager { if (mOriginalBluetoothName != null && adapterName.equals(BluetoothAdapter.getDefaultAdapter().getName())) { startAdvertising(mAssociationServiceUuid, mAdvertiseCallback, - /* includeDeviceName= */ true, /* serviceData= */ null); + /* includeDeviceName= */ true, /* serviceData= */ null, + /* serviceDataUuid= */ null); return; } @@ -439,7 +445,8 @@ public class CarBlePeripheralManager extends CarBleManager { } private void startAdvertising(@NonNull UUID serviceUuid, @NonNull AdvertiseCallback callback, - boolean includeDeviceName, @Nullable byte[] serviceData) { + boolean includeDeviceName, @Nullable byte[] serviceData, + @Nullable UUID serviceDataUuid) { BluetoothGattService gattService = new BluetoothGattService(serviceUuid, BluetoothGattService.SERVICE_TYPE_PRIMARY); gattService.addCharacteristic(mWriteCharacteristic); @@ -450,7 +457,11 @@ public class CarBlePeripheralManager extends CarBleManager { ParcelUuid uuid = new ParcelUuid(serviceUuid); builder.addServiceUuid(uuid); if (serviceData != null) { - builder.addServiceData(uuid, serviceData); + ParcelUuid dataUuid = uuid; + if (serviceDataUuid != null) { + dataUuid = new ParcelUuid(serviceDataUuid); + } + builder.addServiceData(dataUuid, serviceData); } mBlePeripheralManager.startAdvertising(gattService, builder.build(), callback); |
