Loading android/app/jni/com_android_bluetooth_gatt.cpp +7 −6 Original line number Diff line number Diff line Loading @@ -1231,17 +1231,18 @@ public: void OnDistanceMeasurementResult(RawAddress address, uint32_t centimeter, uint32_t error_centimeter, int azimuth_angle, int error_azimuth_angle, int altitude_angle, int error_altitude_angle, uint8_t method) { int error_altitude_angle, long elapsedRealtimeNanos, uint8_t method) { std::shared_lock<std::shared_mutex> lock(callbacks_mutex); CallbackEnv sCallbackEnv(__func__); if (!sCallbackEnv.valid() || !mDistanceMeasurementCallbacksObj) { return; } ScopedLocalRef<jstring> addr(sCallbackEnv.get(), bdaddr2newjstr(sCallbackEnv.get(), &address)); sCallbackEnv->CallVoidMethod(mDistanceMeasurementCallbacksObj, method_onDistanceMeasurementResult, addr.get(), centimeter, error_centimeter, azimuth_angle, error_azimuth_angle, altitude_angle, error_altitude_angle, method); sCallbackEnv->CallVoidMethod( mDistanceMeasurementCallbacksObj, method_onDistanceMeasurementResult, addr.get(), centimeter, error_centimeter, azimuth_angle, error_azimuth_angle, altitude_angle, error_altitude_angle, elapsedRealtimeNanos, method); } }; Loading Loading @@ -2826,7 +2827,7 @@ static int register_com_android_bluetooth_gatt_distance_measurement(JNIEnv* env) &method_onDistanceMeasurementStartFail}, {"onDistanceMeasurementStopped", "(Ljava/lang/String;II)V", &method_onDistanceMeasurementStopped}, {"onDistanceMeasurementResult", "(Ljava/lang/String;IIIIIII)V", {"onDistanceMeasurementResult", "(Ljava/lang/String;IIIIIIJI)V", &method_onDistanceMeasurementResult}, }; GET_JAVA_METHODS(env, "com/android/bluetooth/gatt/DistanceMeasurementNativeInterface", Loading android/app/src/com/android/bluetooth/gatt/DistanceMeasurementManager.java +2 −0 Original line number Diff line number Diff line Loading @@ -468,6 +468,7 @@ public class DistanceMeasurementManager { int errorAzimuthAngle, int altitudeAngle, int errorAltitudeAngle, long elapsedRealtimeNanos, int method) { logd( "onDistanceMeasurementResult " Loading @@ -476,6 +477,7 @@ public class DistanceMeasurementManager { + centimeter); DistanceMeasurementResult result = new DistanceMeasurementResult.Builder(centimeter / 100.0, errorCentimeter / 100.0) .setMeasurementTimestampNanos(elapsedRealtimeNanos) .build(); switch (method) { case DistanceMeasurementMethod.DISTANCE_MEASUREMENT_METHOD_RSSI: Loading android/app/src/com/android/bluetooth/gatt/DistanceMeasurementNativeInterface.java +2 −0 Original line number Diff line number Diff line Loading @@ -110,6 +110,7 @@ public class DistanceMeasurementNativeInterface { int errorAzimuthAngle, int altitudeAngle, int errorAltitudeAngle, long elapsedRealtimeNanos, int method) { mDistanceMeasurementManager.onDistanceMeasurementResult( address, Loading @@ -119,6 +120,7 @@ public class DistanceMeasurementNativeInterface { errorAzimuthAngle, altitudeAngle, errorAltitudeAngle, elapsedRealtimeNanos, method); } Loading android/app/tests/unit/src/com/android/bluetooth/gatt/DistanceMeasurementManagerTest.java +3 −0 Original line number Diff line number Diff line Loading @@ -196,6 +196,7 @@ public class DistanceMeasurementManagerTest { -1, -1, -1, 1000L, DistanceMeasurementMethod.DISTANCE_MEASUREMENT_METHOD_RSSI); ArgumentCaptor<DistanceMeasurementResult> result = ArgumentCaptor.forClass(DistanceMeasurementResult.class); Loading @@ -206,6 +207,7 @@ public class DistanceMeasurementManagerTest { assertThat(result.getValue().getErrorAzimuthAngle()).isEqualTo(Double.NaN); assertThat(result.getValue().getAltitudeAngle()).isEqualTo(Double.NaN); assertThat(result.getValue().getErrorAltitudeAngle()).isEqualTo(Double.NaN); assertThat(result.getValue().getMeasurementTimestampNanos()).isEqualTo(1000L); } @Test Loading @@ -232,6 +234,7 @@ public class DistanceMeasurementManagerTest { -1, -1, -1, 1000L, DistanceMeasurementMethod.DISTANCE_MEASUREMENT_METHOD_RSSI); DistanceMeasurementResult result = new DistanceMeasurementResult.Builder(1.00, 1.00).build(); Loading flags/ranging.aconfig +9 −1 Original line number Diff line number Diff line Loading @@ -15,3 +15,11 @@ flag { description: "Enable Channel Sounding in the Bluetooth stack" bug: "324185011" } flag { name:"channel_sounding_25q2_apis" namespace: "bluetooth" is_exported: true description: "Add new APIs for channel sounding" bug: "367409858" } Loading
android/app/jni/com_android_bluetooth_gatt.cpp +7 −6 Original line number Diff line number Diff line Loading @@ -1231,17 +1231,18 @@ public: void OnDistanceMeasurementResult(RawAddress address, uint32_t centimeter, uint32_t error_centimeter, int azimuth_angle, int error_azimuth_angle, int altitude_angle, int error_altitude_angle, uint8_t method) { int error_altitude_angle, long elapsedRealtimeNanos, uint8_t method) { std::shared_lock<std::shared_mutex> lock(callbacks_mutex); CallbackEnv sCallbackEnv(__func__); if (!sCallbackEnv.valid() || !mDistanceMeasurementCallbacksObj) { return; } ScopedLocalRef<jstring> addr(sCallbackEnv.get(), bdaddr2newjstr(sCallbackEnv.get(), &address)); sCallbackEnv->CallVoidMethod(mDistanceMeasurementCallbacksObj, method_onDistanceMeasurementResult, addr.get(), centimeter, error_centimeter, azimuth_angle, error_azimuth_angle, altitude_angle, error_altitude_angle, method); sCallbackEnv->CallVoidMethod( mDistanceMeasurementCallbacksObj, method_onDistanceMeasurementResult, addr.get(), centimeter, error_centimeter, azimuth_angle, error_azimuth_angle, altitude_angle, error_altitude_angle, elapsedRealtimeNanos, method); } }; Loading Loading @@ -2826,7 +2827,7 @@ static int register_com_android_bluetooth_gatt_distance_measurement(JNIEnv* env) &method_onDistanceMeasurementStartFail}, {"onDistanceMeasurementStopped", "(Ljava/lang/String;II)V", &method_onDistanceMeasurementStopped}, {"onDistanceMeasurementResult", "(Ljava/lang/String;IIIIIII)V", {"onDistanceMeasurementResult", "(Ljava/lang/String;IIIIIIJI)V", &method_onDistanceMeasurementResult}, }; GET_JAVA_METHODS(env, "com/android/bluetooth/gatt/DistanceMeasurementNativeInterface", Loading
android/app/src/com/android/bluetooth/gatt/DistanceMeasurementManager.java +2 −0 Original line number Diff line number Diff line Loading @@ -468,6 +468,7 @@ public class DistanceMeasurementManager { int errorAzimuthAngle, int altitudeAngle, int errorAltitudeAngle, long elapsedRealtimeNanos, int method) { logd( "onDistanceMeasurementResult " Loading @@ -476,6 +477,7 @@ public class DistanceMeasurementManager { + centimeter); DistanceMeasurementResult result = new DistanceMeasurementResult.Builder(centimeter / 100.0, errorCentimeter / 100.0) .setMeasurementTimestampNanos(elapsedRealtimeNanos) .build(); switch (method) { case DistanceMeasurementMethod.DISTANCE_MEASUREMENT_METHOD_RSSI: Loading
android/app/src/com/android/bluetooth/gatt/DistanceMeasurementNativeInterface.java +2 −0 Original line number Diff line number Diff line Loading @@ -110,6 +110,7 @@ public class DistanceMeasurementNativeInterface { int errorAzimuthAngle, int altitudeAngle, int errorAltitudeAngle, long elapsedRealtimeNanos, int method) { mDistanceMeasurementManager.onDistanceMeasurementResult( address, Loading @@ -119,6 +120,7 @@ public class DistanceMeasurementNativeInterface { errorAzimuthAngle, altitudeAngle, errorAltitudeAngle, elapsedRealtimeNanos, method); } Loading
android/app/tests/unit/src/com/android/bluetooth/gatt/DistanceMeasurementManagerTest.java +3 −0 Original line number Diff line number Diff line Loading @@ -196,6 +196,7 @@ public class DistanceMeasurementManagerTest { -1, -1, -1, 1000L, DistanceMeasurementMethod.DISTANCE_MEASUREMENT_METHOD_RSSI); ArgumentCaptor<DistanceMeasurementResult> result = ArgumentCaptor.forClass(DistanceMeasurementResult.class); Loading @@ -206,6 +207,7 @@ public class DistanceMeasurementManagerTest { assertThat(result.getValue().getErrorAzimuthAngle()).isEqualTo(Double.NaN); assertThat(result.getValue().getAltitudeAngle()).isEqualTo(Double.NaN); assertThat(result.getValue().getErrorAltitudeAngle()).isEqualTo(Double.NaN); assertThat(result.getValue().getMeasurementTimestampNanos()).isEqualTo(1000L); } @Test Loading @@ -232,6 +234,7 @@ public class DistanceMeasurementManagerTest { -1, -1, -1, 1000L, DistanceMeasurementMethod.DISTANCE_MEASUREMENT_METHOD_RSSI); DistanceMeasurementResult result = new DistanceMeasurementResult.Builder(1.00, 1.00).build(); Loading
flags/ranging.aconfig +9 −1 Original line number Diff line number Diff line Loading @@ -15,3 +15,11 @@ flag { description: "Enable Channel Sounding in the Bluetooth stack" bug: "324185011" } flag { name:"channel_sounding_25q2_apis" namespace: "bluetooth" is_exported: true description: "Add new APIs for channel sounding" bug: "367409858" }