diff --git a/api/current.txt b/api/current.txt index 0eb6447ce2916..c88ed28d82d20 100644 --- a/api/current.txt +++ b/api/current.txt @@ -22659,7 +22659,7 @@ package android.location { method public double getDriftNanosPerSecond(); method @FloatRange(from=0.0f) public double getDriftUncertaintyNanosPerSecond(); method public long getElapsedRealtimeNanos(); - method @IntRange(from=0) public long getElapsedRealtimeUncertaintyNanos(); + method @FloatRange(from=0.0f) public double getElapsedRealtimeUncertaintyNanos(); method public long getFullBiasNanos(); method public int getHardwareClockDiscontinuityCount(); method public int getLeapSecond(); @@ -22863,7 +22863,7 @@ package android.location { method public float getBearing(); method public float getBearingAccuracyDegrees(); method public long getElapsedRealtimeNanos(); - method public long getElapsedRealtimeUncertaintyNanos(); + method public double getElapsedRealtimeUncertaintyNanos(); method public android.os.Bundle getExtras(); method public double getLatitude(); method public double getLongitude(); @@ -22892,7 +22892,7 @@ package android.location { method public void setBearing(float); method public void setBearingAccuracyDegrees(float); method public void setElapsedRealtimeNanos(long); - method public void setElapsedRealtimeUncertaintyNanos(long); + method public void setElapsedRealtimeUncertaintyNanos(double); method public void setExtras(android.os.Bundle); method public void setLatitude(double); method public void setLongitude(double); diff --git a/api/test-current.txt b/api/test-current.txt index 67a26f39ebbce..99cdfb012155c 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -954,7 +954,7 @@ package android.location { method public void setDriftNanosPerSecond(double); method public void setDriftUncertaintyNanosPerSecond(@FloatRange(from=0.0f) double); method public void setElapsedRealtimeNanos(long); - method public void setElapsedRealtimeUncertaintyNanos(@IntRange(from=0) long); + method public void setElapsedRealtimeUncertaintyNanos(@FloatRange(from=0.0f) double); method public void setFullBiasNanos(long); method public void setHardwareClockDiscontinuityCount(int); method public void setLeapSecond(int); diff --git a/location/java/android/location/GnssClock.java b/location/java/android/location/GnssClock.java index 538406180367f..8a7878b46e89c 100644 --- a/location/java/android/location/GnssClock.java +++ b/location/java/android/location/GnssClock.java @@ -17,7 +17,6 @@ package android.location; import android.annotation.FloatRange; -import android.annotation.IntRange; import android.annotation.TestApi; import android.os.Parcel; import android.os.Parcelable; @@ -54,7 +53,7 @@ public final class GnssClock implements Parcelable { private double mDriftUncertaintyNanosPerSecond; private int mHardwareClockDiscontinuityCount; private long mElapsedRealtimeNanos; - private long mElapsedRealtimeUncertaintyNanos; + private double mElapsedRealtimeUncertaintyNanos; /** * @hide @@ -469,8 +468,8 @@ public final class GnssClock implements Parcelable { *
The value is only available if {@link #hasElapsedRealtimeUncertaintyNanos()} is
* {@code true}.
*/
- @IntRange(from = 0)
- public long getElapsedRealtimeUncertaintyNanos() {
+ @FloatRange(from = 0.0f)
+ public double getElapsedRealtimeUncertaintyNanos() {
return mElapsedRealtimeUncertaintyNanos;
}
@@ -482,7 +481,7 @@ public final class GnssClock implements Parcelable {
*/
@TestApi
public void setElapsedRealtimeUncertaintyNanos(
- @IntRange(from = 0) long elapsedRealtimeUncertaintyNanos) {
+ @FloatRange(from = 0.0f) double elapsedRealtimeUncertaintyNanos) {
setFlag(HAS_ELAPSED_REALTIME_UNCERTAINTY_NANOS);
mElapsedRealtimeUncertaintyNanos = elapsedRealtimeUncertaintyNanos;
}
@@ -496,7 +495,7 @@ public final class GnssClock implements Parcelable {
@TestApi
public void resetElapsedRealtimeUncertaintyNanos() {
resetFlag(HAS_ELAPSED_REALTIME_UNCERTAINTY_NANOS);
- mElapsedRealtimeUncertaintyNanos = Long.MAX_VALUE;
+ mElapsedRealtimeUncertaintyNanos = Double.NaN;
}
/**
@@ -543,7 +542,7 @@ public final class GnssClock implements Parcelable {
gpsClock.mDriftUncertaintyNanosPerSecond = parcel.readDouble();
gpsClock.mHardwareClockDiscontinuityCount = parcel.readInt();
gpsClock.mElapsedRealtimeNanos = parcel.readLong();
- gpsClock.mElapsedRealtimeUncertaintyNanos = parcel.readLong();
+ gpsClock.mElapsedRealtimeUncertaintyNanos = parcel.readDouble();
return gpsClock;
}
@@ -567,7 +566,7 @@ public final class GnssClock implements Parcelable {
parcel.writeDouble(mDriftUncertaintyNanosPerSecond);
parcel.writeInt(mHardwareClockDiscontinuityCount);
parcel.writeLong(mElapsedRealtimeNanos);
- parcel.writeLong(mElapsedRealtimeUncertaintyNanos);
+ parcel.writeDouble(mElapsedRealtimeUncertaintyNanos);
}
@Override
diff --git a/location/java/android/location/Location.java b/location/java/android/location/Location.java
index 673b4112d4234..877172af19938 100644
--- a/location/java/android/location/Location.java
+++ b/location/java/android/location/Location.java
@@ -136,7 +136,7 @@ public class Location implements Parcelable {
private long mElapsedRealtimeNanos = 0;
// Estimate of the relative precision of the alignment of this SystemClock
// timestamp, with the reported measurements in nanoseconds (68% confidence).
- private long mElapsedRealtimeUncertaintyNanos = 0;
+ private double mElapsedRealtimeUncertaintyNanos = 0.0f;
private double mLatitude = 0.0;
private double mLongitude = 0.0;
private double mAltitude = 0.0f;
@@ -199,7 +199,7 @@ public class Location implements Parcelable {
mProvider = null;
mTime = 0;
mElapsedRealtimeNanos = 0;
- mElapsedRealtimeUncertaintyNanos = 0;
+ mElapsedRealtimeUncertaintyNanos = 0.0;
mFieldsMask = 0;
mLatitude = 0;
mLongitude = 0;
@@ -601,7 +601,7 @@ public class Location implements Parcelable {
*
* @return uncertainty of elapsed real-time of fix, in nanoseconds.
*/
- public long getElapsedRealtimeUncertaintyNanos() {
+ public double getElapsedRealtimeUncertaintyNanos() {
return mElapsedRealtimeUncertaintyNanos;
}
@@ -612,7 +612,7 @@ public class Location implements Parcelable {
*
* @param time uncertainty of the elapsed real-time of fix, in nanoseconds.
*/
- public void setElapsedRealtimeUncertaintyNanos(long time) {
+ public void setElapsedRealtimeUncertaintyNanos(double time) {
mElapsedRealtimeUncertaintyNanos = time;
mFieldsMask |= HAS_ELAPSED_REALTIME_UNCERTAINTY_MASK;
}
@@ -1104,7 +1104,7 @@ public class Location implements Parcelable {
}
if (hasElapsedRealtimeUncertaintyNanos()) {
s.append(" etAcc=");
- TimeUtils.formatDuration(mElapsedRealtimeUncertaintyNanos / 1000000L, s);
+ TimeUtils.formatDuration((long) (mElapsedRealtimeUncertaintyNanos / 1000000), s);
}
if (hasAltitude()) s.append(" alt=").append(mAltitude);
if (hasSpeed()) s.append(" vel=").append(mSpeed);
@@ -1136,7 +1136,7 @@ public class Location implements Parcelable {
Location l = new Location(provider);
l.mTime = in.readLong();
l.mElapsedRealtimeNanos = in.readLong();
- l.mElapsedRealtimeUncertaintyNanos = in.readLong();
+ l.mElapsedRealtimeUncertaintyNanos = in.readDouble();
l.mFieldsMask = in.readInt();
l.mLatitude = in.readDouble();
l.mLongitude = in.readDouble();
@@ -1167,7 +1167,7 @@ public class Location implements Parcelable {
parcel.writeString(mProvider);
parcel.writeLong(mTime);
parcel.writeLong(mElapsedRealtimeNanos);
- parcel.writeLong(mElapsedRealtimeUncertaintyNanos);
+ parcel.writeDouble(mElapsedRealtimeUncertaintyNanos);
parcel.writeInt(mFieldsMask);
parcel.writeDouble(mLatitude);
parcel.writeDouble(mLongitude);
diff --git a/services/core/java/com/android/server/location/GnssLocationProvider.java b/services/core/java/com/android/server/location/GnssLocationProvider.java
index 4504b2e38e2b1..e28f89c590180 100644
--- a/services/core/java/com/android/server/location/GnssLocationProvider.java
+++ b/services/core/java/com/android/server/location/GnssLocationProvider.java
@@ -786,7 +786,7 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
| (location.hasElapsedRealtimeUncertaintyNanos()
? ELAPSED_REALTIME_HAS_TIME_UNCERTAINTY_NS : 0);
long elapsedRealtimeNanos = location.getElapsedRealtimeNanos();
- long elapsedRealtimeUncertaintyNanos = location.getElapsedRealtimeUncertaintyNanos();
+ double elapsedRealtimeUncertaintyNanos = location.getElapsedRealtimeUncertaintyNanos();
native_inject_best_location(
gnssLocationFlags, latitudeDegrees, longitudeDegrees,
@@ -2215,7 +2215,7 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
float horizontalAccuracyMeters, float verticalAccuracyMeters,
float speedAccuracyMetersPerSecond, float bearingAccuracyDegrees,
long timestamp, int elapsedRealtimeFlags, long elapsedRealtimeNanos,
- long elapsedRealtimeUncertaintyNanos);
+ double elapsedRealtimeUncertaintyNanos);
private native void native_inject_location(double latitude, double longitude, float accuracy);
diff --git a/services/core/jni/com_android_server_location_GnssLocationProvider.cpp b/services/core/jni/com_android_server_location_GnssLocationProvider.cpp
index 019cb315bc61d..73e9bf0e12021 100644
--- a/services/core/jni/com_android_server_location_GnssLocationProvider.cpp
+++ b/services/core/jni/com_android_server_location_GnssLocationProvider.cpp
@@ -499,7 +499,7 @@ static jobject translateGnssLocation(JNIEnv* env,
}
if (flags & ElapsedRealtimeFlags::HAS_TIME_UNCERTAINTY_NS) {
- SET(ElapsedRealtimeUncertaintyNanos, location.elapsedRealtime.timeUncertaintyNs);
+ SET(ElapsedRealtimeUncertaintyNanos, static_cast