summaryrefslogtreecommitdiffstats
path: root/connected-device-lib/src
diff options
context:
space:
mode:
authorDan Harms <danharms@google.com>2020-06-08 11:14:44 -0700
committerDan Harms <danharms@google.com>2020-06-12 10:06:18 -0700
commitbb164b9524ab653fe19ac87bd13d8a14aa5c1763 (patch)
tree4b84e5e778e03a3b76048234d8f7a6c67fe70118 /connected-device-lib/src
parentd8a3ba9e5800f64f296ba5343a2ff09af4a84aa2 (diff)
downloadplatform_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.java6
-rw-r--r--connected-device-lib/src/com/android/car/connecteddevice/ble/CarBlePeripheralManager.java19
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);