summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/api/current.txt2
-rw-r--r--location/java/android/location/GnssMeasurementsEvent.java50
2 files changed, 48 insertions, 4 deletions
diff --git a/core/api/current.txt b/core/api/current.txt
index c8241066b258..2b17e437df8c 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -19674,6 +19674,7 @@ package android.location {
method public int describeContents();
method @NonNull public android.location.GnssClock getClock();
method @NonNull public java.util.Collection<android.location.GnssAutomaticGainControl> getGnssAutomaticGainControls();
+ method public boolean getIsFullTracking();
method @NonNull public java.util.Collection<android.location.GnssMeasurement> getMeasurements();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.location.GnssMeasurementsEvent> CREATOR;
@@ -19685,6 +19686,7 @@ package android.location {
method @NonNull public android.location.GnssMeasurementsEvent build();
method @NonNull public android.location.GnssMeasurementsEvent.Builder setClock(@NonNull android.location.GnssClock);
method @NonNull public android.location.GnssMeasurementsEvent.Builder setGnssAutomaticGainControls(@NonNull java.util.Collection<android.location.GnssAutomaticGainControl>);
+ method @NonNull public android.location.GnssMeasurementsEvent.Builder setIsFullTracking(boolean);
method @NonNull public android.location.GnssMeasurementsEvent.Builder setMeasurements(@NonNull java.util.Collection<android.location.GnssMeasurement>);
}
diff --git a/location/java/android/location/GnssMeasurementsEvent.java b/location/java/android/location/GnssMeasurementsEvent.java
index 0397740d104e..a8b0dc235b43 100644
--- a/location/java/android/location/GnssMeasurementsEvent.java
+++ b/location/java/android/location/GnssMeasurementsEvent.java
@@ -40,6 +40,7 @@ public final class GnssMeasurementsEvent implements Parcelable {
private final GnssClock mClock;
private final List<GnssMeasurement> mMeasurements;
private final List<GnssAutomaticGainControl> mGnssAgcs;
+ private final boolean mIsFullTracking;
/**
* Used for receiving GNSS satellite measurements from the GNSS engine.
@@ -124,10 +125,12 @@ public final class GnssMeasurementsEvent implements Parcelable {
*/
private GnssMeasurementsEvent(@NonNull GnssClock clock,
@NonNull List<GnssMeasurement> measurements,
- @NonNull List<GnssAutomaticGainControl> agcs) {
+ @NonNull List<GnssAutomaticGainControl> agcs,
+ boolean isFullTracking) {
mMeasurements = measurements;
mGnssAgcs = agcs;
mClock = clock;
+ mIsFullTracking = isFullTracking;
}
/**
@@ -156,15 +159,31 @@ public final class GnssMeasurementsEvent implements Parcelable {
return mGnssAgcs;
}
+ /**
+ * True indicates that this event was produced while the chipset was in full tracking mode, ie,
+ * the GNSS chipset switched off duty cycling. In this mode, no clock discontinuities are
+ * expected and, when supported, carrier phase should be continuous in good signal conditions.
+ * All non-blocklisted, healthy constellations, satellites and frequency bands must be tracked
+ * and reported in this mode.
+ *
+ * False indicates that the GNSS chipset may optimize power via duty cycling, constellations and
+ * frequency limits, etc.
+ */
+ public boolean getIsFullTracking() {
+ return mIsFullTracking;
+ }
+
public static final @android.annotation.NonNull Creator<GnssMeasurementsEvent> CREATOR =
new Creator<GnssMeasurementsEvent>() {
@Override
public GnssMeasurementsEvent createFromParcel(Parcel in) {
- GnssClock clock = in.readParcelable(getClass().getClassLoader(), android.location.GnssClock.class);
+ GnssClock clock = in.readParcelable(getClass().getClassLoader(),
+ android.location.GnssClock.class);
List<GnssMeasurement> measurements = in.createTypedArrayList(GnssMeasurement.CREATOR);
List<GnssAutomaticGainControl> agcs = in.createTypedArrayList(
GnssAutomaticGainControl.CREATOR);
- return new GnssMeasurementsEvent(clock, measurements, agcs);
+ boolean isFullTracking = in.readBoolean();
+ return new GnssMeasurementsEvent(clock, measurements, agcs, isFullTracking);
}
@Override
@@ -183,6 +202,7 @@ public final class GnssMeasurementsEvent implements Parcelable {
parcel.writeParcelable(mClock, flags);
parcel.writeTypedList(mMeasurements);
parcel.writeTypedList(mGnssAgcs);
+ parcel.writeBoolean(mIsFullTracking);
}
@Override
@@ -191,6 +211,7 @@ public final class GnssMeasurementsEvent implements Parcelable {
builder.append(mClock);
builder.append(' ').append(mMeasurements.toString());
builder.append(' ').append(mGnssAgcs.toString());
+ builder.append(" isFullTracking=").append(mIsFullTracking);
builder.append("]");
return builder.toString();
}
@@ -200,6 +221,7 @@ public final class GnssMeasurementsEvent implements Parcelable {
private GnssClock mClock;
private List<GnssMeasurement> mMeasurements;
private List<GnssAutomaticGainControl> mGnssAgcs;
+ private boolean mIsFullTracking;
/**
* Constructs a {@link GnssMeasurementsEvent.Builder} instance.
@@ -218,6 +240,7 @@ public final class GnssMeasurementsEvent implements Parcelable {
mClock = event.getClock();
mMeasurements = (List<GnssMeasurement>) event.getMeasurements();
mGnssAgcs = (List<GnssAutomaticGainControl>) event.getGnssAutomaticGainControls();
+ mIsFullTracking = event.getIsFullTracking();
}
/**
@@ -276,10 +299,29 @@ public final class GnssMeasurementsEvent implements Parcelable {
return this;
}
+ /**
+ * Sets whether the GNSS chipset was in the full tracking mode at the time this event was
+ * produced.
+ *
+ * True indicates that this event was produced while the chipset was in full tracking
+ * mode, ie, the GNSS chipset switched off duty cycling. In this mode, no clock
+ * discontinuities are expected and, when supported, carrier phase should be continuous in
+ * good signal conditions. All non-blocklisted, healthy constellations, satellites and
+ * frequency bands must be tracked and reported in this mode.
+ *
+ * False indicates that the GNSS chipset may optimize power via duty cycling, constellations
+ * and frequency limits, etc.
+ */
+ @NonNull
+ public Builder setIsFullTracking(boolean isFullTracking) {
+ mIsFullTracking = isFullTracking;
+ return this;
+ }
+
/** Builds a {@link GnssMeasurementsEvent} instance as specified by this builder. */
@NonNull
public GnssMeasurementsEvent build() {
- return new GnssMeasurementsEvent(mClock, mMeasurements, mGnssAgcs);
+ return new GnssMeasurementsEvent(mClock, mMeasurements, mGnssAgcs, mIsFullTracking);
}
}
}