diff --git a/nearby/service/java/com/android/server/nearby/provider/ChreDiscoveryProvider.java b/nearby/service/java/com/android/server/nearby/provider/ChreDiscoveryProvider.java index 0302e4fcc1..035da294bf 100644 --- a/nearby/service/java/com/android/server/nearby/provider/ChreDiscoveryProvider.java +++ b/nearby/service/java/com/android/server/nearby/provider/ChreDiscoveryProvider.java @@ -350,7 +350,10 @@ public class ChreDiscoveryProvider extends AbstractDiscoveryProvider { DataElement.DataType.ACTION, new byte[]{(byte) filterResult.getIntent()})); } - + if (filterResult.hasDiscoveryTimestamp()) { + presenceDeviceBuilder.setDiscoveryTimestampMillis( + filterResult.getDiscoveryTimestamp()); + } PublicCredential publicCredential = new PublicCredential.Builder( secretId, diff --git a/nearby/service/proto/src/presence/blefilter.proto b/nearby/service/proto/src/presence/blefilter.proto index e1bf45595a..01f16cb961 100644 --- a/nearby/service/proto/src/presence/blefilter.proto +++ b/nearby/service/proto/src/presence/blefilter.proto @@ -115,6 +115,7 @@ message BleFilterResult { repeated DataElement data_element = 7; optional bytes ble_service_data = 8; optional ResultType result_type = 9; + optional uint64 discovery_timestamp = 10; // Timestamp when the device is discovered. } message BleFilterResults { diff --git a/nearby/tests/unit/src/com/android/server/nearby/provider/ChreDiscoveryProviderTest.java b/nearby/tests/unit/src/com/android/server/nearby/provider/ChreDiscoveryProviderTest.java index 6f035a9c54..1f727a7664 100644 --- a/nearby/tests/unit/src/com/android/server/nearby/provider/ChreDiscoveryProviderTest.java +++ b/nearby/tests/unit/src/com/android/server/nearby/provider/ChreDiscoveryProviderTest.java @@ -262,6 +262,7 @@ public class ChreDiscoveryProviderTest { .setValue(ByteString.copyFrom(testData)) .setValueLength(testData.length) ) + .setDiscoveryTimestamp(1697765417070L) .build(); Blefilter.BleFilterResults results = Blefilter.BleFilterResults.newBuilder().addResult(result).build();