Merge "Fix Tx Power in Advertising and RSSI in Scan Result" into tm-mainline-prod
diff --git a/nearby/service/java/com/android/server/nearby/provider/BleBroadcastProvider.java b/nearby/service/java/com/android/server/nearby/provider/BleBroadcastProvider.java
index 8537872..2b9fdb9 100644
--- a/nearby/service/java/com/android/server/nearby/provider/BleBroadcastProvider.java
+++ b/nearby/service/java/com/android/server/nearby/provider/BleBroadcastProvider.java
@@ -158,6 +158,7 @@
return new AdvertisingSetParameters.Builder()
.setInterval(AdvertisingSetParameters.INTERVAL_MEDIUM)
.setTxPowerLevel(AdvertisingSetParameters.TX_POWER_MEDIUM)
+ .setIncludeTxPower(true)
.setConnectable(true)
.build();
}
diff --git a/nearby/service/java/com/android/server/nearby/provider/BleDiscoveryProvider.java b/nearby/service/java/com/android/server/nearby/provider/BleDiscoveryProvider.java
index 0d92e63..d828ef9 100644
--- a/nearby/service/java/com/android/server/nearby/provider/BleDiscoveryProvider.java
+++ b/nearby/service/java/com/android/server/nearby/provider/BleDiscoveryProvider.java
@@ -96,7 +96,8 @@
} else {
byte[] presenceData = serviceDataMap.get(PRESENCE_UUID);
if (presenceData != null) {
- setPresenceDevice(presenceData, builder);
+ setPresenceDevice(presenceData, builder, deviceName,
+ scanResult.getRssi());
}
}
}
@@ -115,7 +116,8 @@
mInjector = injector;
}
- private static PresenceDevice getPresenceDevice(ExtendedAdvertisement advertisement) {
+ private static PresenceDevice getPresenceDevice(ExtendedAdvertisement advertisement,
+ String deviceName, int rssi) {
// TODO(238458326): After implementing encryption, use real data.
byte[] secretIdBytes = new byte[0];
PresenceDevice.Builder builder =
@@ -124,7 +126,9 @@
advertisement.getSalt(),
secretIdBytes,
advertisement.getIdentity())
- .addMedium(NearbyDevice.Medium.BLE);
+ .addMedium(NearbyDevice.Medium.BLE)
+ .setName(deviceName)
+ .setRssi(rssi);
for (int i : advertisement.getActions()) {
builder.addExtendedProperty(new DataElement(DataElement.DataType.ACTION,
new byte[]{(byte) i}));
@@ -247,7 +251,8 @@
return mScanCallback;
}
- private void setPresenceDevice(byte[] data, NearbyDeviceParcelable.Builder builder) {
+ private void setPresenceDevice(byte[] data, NearbyDeviceParcelable.Builder builder,
+ String deviceName, int rssi) {
for (android.nearby.ScanFilter scanFilter : mScanFilters) {
if (scanFilter instanceof PresenceScanFilter) {
// Iterate all possible authenticity key and identity combinations to decrypt
@@ -262,7 +267,8 @@
if (CryptorImpIdentityV1.getInstance().verify(
advertisement.getIdentity(),
credential.getEncryptedMetadataKeyTag())) {
- builder.setPresenceDevice(getPresenceDevice(advertisement));
+ builder.setPresenceDevice(getPresenceDevice(advertisement, deviceName,
+ rssi));
builder.setEncryptionKeyTag(credential.getEncryptedMetadataKeyTag());
return;
}