summaryrefslogtreecommitdiff
path: root/location
diff options
context:
space:
mode:
author Shinru Han <shinruhan@google.com> 2024-12-16 05:54:11 -0800
committer Shinru Han <shinruhan@google.com> 2024-12-16 07:10:54 -0800
commit03f5295a677fee8cb237634ca3d5cd82c96f6c10 (patch)
tree125a47ab74d120117965bf7b3c000dca1ed741c9 /location
parent6868c432df9478d7c78b3a492120cfad4c305127 (diff)
Update GnssAssistance classes
- Add missing fields for Glonass ephemeris & almanac. - Define health type for Galileo & Glonass. Bug: 358381377 Test: atest CtsLocationNoneTestCases Flag: android.location.flags.gnss_assistance_interface Change-Id: I3ba66a25a4e6ccb641852e6e31fb9318b4047a04
Diffstat (limited to 'location')
-rw-r--r--location/api/system-current.txt84
-rw-r--r--location/java/android/location/BeidouSatelliteEphemeris.java30
-rw-r--r--location/java/android/location/GalileoSatelliteEphemeris.java149
-rw-r--r--location/java/android/location/GlonassAlmanac.java112
-rw-r--r--location/java/android/location/GlonassSatelliteEphemeris.java183
-rw-r--r--location/java/android/location/GnssAlmanac.java57
-rw-r--r--location/java/android/location/GpsSatelliteEphemeris.java30
-rw-r--r--location/java/android/location/QzssSatelliteEphemeris.java30
8 files changed, 495 insertions, 180 deletions
diff --git a/location/api/system-current.txt b/location/api/system-current.txt
index ba4224137cd4..0c2f3adc2838 100644
--- a/location/api/system-current.txt
+++ b/location/api/system-current.txt
@@ -35,11 +35,11 @@ package android.location {
@FlaggedApi("android.location.flags.gnss_assistance_interface") public final class BeidouSatelliteEphemeris implements android.os.Parcelable {
method public int describeContents();
- method @IntRange(from=1, to=63) public int getPrn();
method @NonNull public android.location.BeidouSatelliteEphemeris.BeidouSatelliteClockModel getSatelliteClockModel();
method @NonNull public android.location.BeidouSatelliteEphemeris.BeidouSatelliteEphemerisTime getSatelliteEphemerisTime();
method @NonNull public android.location.BeidouSatelliteEphemeris.BeidouSatelliteHealth getSatelliteHealth();
method @NonNull public android.location.KeplerianOrbitModel getSatelliteOrbitModel();
+ method @IntRange(from=1, to=63) public int getSvid();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.location.BeidouSatelliteEphemeris> CREATOR;
}
@@ -104,11 +104,11 @@ package android.location {
public static final class BeidouSatelliteEphemeris.Builder {
ctor public BeidouSatelliteEphemeris.Builder();
method @NonNull public android.location.BeidouSatelliteEphemeris build();
- method @NonNull public android.location.BeidouSatelliteEphemeris.Builder setPrn(int);
method @NonNull public android.location.BeidouSatelliteEphemeris.Builder setSatelliteClockModel(@NonNull android.location.BeidouSatelliteEphemeris.BeidouSatelliteClockModel);
method @NonNull public android.location.BeidouSatelliteEphemeris.Builder setSatelliteEphemerisTime(@NonNull android.location.BeidouSatelliteEphemeris.BeidouSatelliteEphemerisTime);
method @NonNull public android.location.BeidouSatelliteEphemeris.Builder setSatelliteHealth(@NonNull android.location.BeidouSatelliteEphemeris.BeidouSatelliteHealth);
method @NonNull public android.location.BeidouSatelliteEphemeris.Builder setSatelliteOrbitModel(@NonNull android.location.KeplerianOrbitModel);
+ method @NonNull public android.location.BeidouSatelliteEphemeris.Builder setSvid(int);
}
public final class CorrelationVector implements android.os.Parcelable {
@@ -195,10 +195,10 @@ package android.location {
@FlaggedApi("android.location.flags.gnss_assistance_interface") public final class GalileoSatelliteEphemeris implements android.os.Parcelable {
method public int describeContents();
method @NonNull public java.util.List<android.location.GalileoSatelliteEphemeris.GalileoSatelliteClockModel> getSatelliteClockModels();
- method @IntRange(from=1, to=36) public int getSatelliteCodeNumber();
method @NonNull public android.location.SatelliteEphemerisTime getSatelliteEphemerisTime();
method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth getSatelliteHealth();
method @NonNull public android.location.KeplerianOrbitModel getSatelliteOrbitModel();
+ method @IntRange(from=1, to=36) public int getSvid();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.location.GalileoSatelliteEphemeris> CREATOR;
}
@@ -207,10 +207,10 @@ package android.location {
ctor public GalileoSatelliteEphemeris.Builder();
method @NonNull public android.location.GalileoSatelliteEphemeris build();
method @NonNull public android.location.GalileoSatelliteEphemeris.Builder setSatelliteClockModels(@NonNull java.util.List<android.location.GalileoSatelliteEphemeris.GalileoSatelliteClockModel>);
- method @NonNull public android.location.GalileoSatelliteEphemeris.Builder setSatelliteCodeNumber(@IntRange(from=1, to=36) int);
method @NonNull public android.location.GalileoSatelliteEphemeris.Builder setSatelliteEphemerisTime(@NonNull android.location.SatelliteEphemerisTime);
method @NonNull public android.location.GalileoSatelliteEphemeris.Builder setSatelliteHealth(@NonNull android.location.GalileoSatelliteEphemeris.GalileoSvHealth);
method @NonNull public android.location.GalileoSatelliteEphemeris.Builder setSatelliteOrbitModel(@NonNull android.location.KeplerianOrbitModel);
+ method @NonNull public android.location.GalileoSatelliteEphemeris.Builder setSvid(@IntRange(from=1, to=36) int);
}
public static final class GalileoSatelliteEphemeris.GalileoSatelliteClockModel implements android.os.Parcelable {
@@ -243,25 +243,31 @@ package android.location {
public static final class GalileoSatelliteEphemeris.GalileoSvHealth implements android.os.Parcelable {
method public int describeContents();
- method @IntRange(from=0, to=1) public int getDataValidityStatusE1b();
- method @IntRange(from=0, to=1) public int getDataValidityStatusE5a();
- method @IntRange(from=0, to=1) public int getDataValidityStatusE5b();
- method @IntRange(from=0, to=3) public int getSignalHealthStatusE1b();
- method @IntRange(from=0, to=3) public int getSignalHealthStatusE5a();
- method @IntRange(from=0, to=3) public int getSignalHealthStatusE5b();
+ method public int getDataValidityStatusE1b();
+ method public int getDataValidityStatusE5a();
+ method public int getDataValidityStatusE5b();
+ method public int getSignalHealthStatusE1b();
+ method public int getSignalHealthStatusE5a();
+ method public int getSignalHealthStatusE5b();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.location.GalileoSatelliteEphemeris.GalileoSvHealth> CREATOR;
+ field public static final int DATA_STATUS_DATA_VALID = 0; // 0x0
+ field public static final int DATA_STATUS_WORKING_WITHOUT_GUARANTEE = 1; // 0x1
+ field public static final int HEALTH_STATUS_EXTENDED_OPERATION_MODE = 2; // 0x2
+ field public static final int HEALTH_STATUS_IN_TEST = 3; // 0x3
+ field public static final int HEALTH_STATUS_OK = 0; // 0x0
+ field public static final int HEALTH_STATUS_OUT_OF_SERVICE = 1; // 0x1
}
public static final class GalileoSatelliteEphemeris.GalileoSvHealth.Builder {
ctor public GalileoSatelliteEphemeris.GalileoSvHealth.Builder();
method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth build();
- method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setDataValidityStatusE1b(@IntRange(from=0, to=1) int);
- method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setDataValidityStatusE5a(@IntRange(from=0, to=1) int);
- method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setDataValidityStatusE5b(@IntRange(from=0, to=1) int);
- method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setSignalHealthStatusE1b(@IntRange(from=0, to=3) int);
- method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setSignalHealthStatusE5a(@IntRange(from=0, to=3) int);
- method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setSignalHealthStatusE5b(@IntRange(from=0, to=3) int);
+ method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setDataValidityStatusE1b(int);
+ method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setDataValidityStatusE5a(int);
+ method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setDataValidityStatusE5b(int);
+ method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setSignalHealthStatusE1b(int);
+ method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setSignalHealthStatusE5a(int);
+ method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSvHealth.Builder setSignalHealthStatusE5b(int);
}
@FlaggedApi("android.location.flags.gnss_assistance_interface") public final class GlonassAlmanac implements android.os.Parcelable {
@@ -275,17 +281,19 @@ package android.location {
public static final class GlonassAlmanac.GlonassSatelliteAlmanac implements android.os.Parcelable {
method public int describeContents();
+ method @IntRange(from=1, to=1461) public int getCalendarDayNumber();
method @FloatRange(from=-0.067F, to=0.067f) public double getDeltaI();
method @FloatRange(from=-3600.0F, to=3600.0f) public double getDeltaT();
method @FloatRange(from=-0.004F, to=0.004f) public double getDeltaTDot();
method @FloatRange(from=0.0f, to=0.03f) public double getEccentricity();
- method @IntRange(from=0, to=31) public int getFreqChannel();
+ method @IntRange(from=0, to=31) public int getFrequencyChannelNumber();
+ method public int getHealthState();
method @FloatRange(from=-1.0F, to=1.0f) public double getLambda();
method @FloatRange(from=-1.0F, to=1.0f) public double getOmega();
method @IntRange(from=1, to=25) public int getSlotNumber();
- method @IntRange(from=0, to=1) public int getSvHealth();
method @FloatRange(from=0.0f, to=44100.0f) public double getTLambda();
method @FloatRange(from=-0.0019F, to=0.0019f) public double getTau();
+ method public boolean isGlonassM();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.location.GlonassAlmanac.GlonassSatelliteAlmanac> CREATOR;
}
@@ -293,15 +301,17 @@ package android.location {
public static final class GlonassAlmanac.GlonassSatelliteAlmanac.Builder {
ctor public GlonassAlmanac.GlonassSatelliteAlmanac.Builder();
method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac build();
+ method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setCalendarDayNumber(@IntRange(from=1, to=1461) int);
method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setDeltaI(@FloatRange(from=-0.067F, to=0.067f) double);
method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setDeltaT(@FloatRange(from=-3600.0F, to=3600.0f) double);
method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setDeltaTDot(@FloatRange(from=-0.004F, to=0.004f) double);
method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setEccentricity(@FloatRange(from=0.0f, to=0.03f) double);
- method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setFreqChannel(@IntRange(from=0, to=31) int);
+ method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setFrequencyChannelNumber(@IntRange(from=0, to=31) int);
+ method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setGlonassM(boolean);
+ method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setHealthState(int);
method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setLambda(@FloatRange(from=-1.0F, to=1.0f) double);
method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setOmega(@FloatRange(from=-1.0F, to=1.0f) double);
method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setSlotNumber(@IntRange(from=1, to=25) int);
- method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setSvHealth(@IntRange(from=0, to=1) int);
method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setTLambda(@FloatRange(from=0.0f, to=44100.0f) double);
method @NonNull public android.location.GlonassAlmanac.GlonassSatelliteAlmanac.Builder setTau(@FloatRange(from=-0.0019F, to=0.0019f) double);
}
@@ -331,12 +341,17 @@ package android.location {
method public int describeContents();
method @IntRange(from=0, to=31) public int getAgeInDays();
method @FloatRange(from=0.0f) public double getFrameTimeSeconds();
- method @IntRange(from=0, to=1) public int getHealthState();
+ method public int getHealthState();
method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteClockModel getSatelliteClockModel();
method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteOrbitModel getSatelliteOrbitModel();
method @IntRange(from=1, to=25) public int getSlotNumber();
+ method @IntRange(from=0, to=60) public int getUpdateIntervalMinutes();
+ method public boolean isGlonassM();
+ method public boolean isUpdateIntervalOdd();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.location.GlonassSatelliteEphemeris> CREATOR;
+ field public static final int HEALTH_STATUS_HEALTHY = 0; // 0x0
+ field public static final int HEALTH_STATUS_UNHEALTHY = 1; // 0x1
}
public static final class GlonassSatelliteEphemeris.Builder {
@@ -344,18 +359,23 @@ package android.location {
method @NonNull public android.location.GlonassSatelliteEphemeris build();
method @NonNull public android.location.GlonassSatelliteEphemeris.Builder setAgeInDays(@IntRange(from=0, to=31) int);
method @NonNull public android.location.GlonassSatelliteEphemeris.Builder setFrameTimeSeconds(@FloatRange(from=0.0f) double);
- method @NonNull public android.location.GlonassSatelliteEphemeris.Builder setHealthState(@IntRange(from=0, to=1) int);
+ method @NonNull public android.location.GlonassSatelliteEphemeris.Builder setGlonassM(boolean);
+ method @NonNull public android.location.GlonassSatelliteEphemeris.Builder setHealthState(int);
method @NonNull public android.location.GlonassSatelliteEphemeris.Builder setSatelliteClockModel(@NonNull android.location.GlonassSatelliteEphemeris.GlonassSatelliteClockModel);
method @NonNull public android.location.GlonassSatelliteEphemeris.Builder setSatelliteOrbitModel(@NonNull android.location.GlonassSatelliteEphemeris.GlonassSatelliteOrbitModel);
method @NonNull public android.location.GlonassSatelliteEphemeris.Builder setSlotNumber(@IntRange(from=1, to=25) int);
+ method @NonNull public android.location.GlonassSatelliteEphemeris.Builder setUpdateIntervalMinutes(@IntRange(from=0, to=60) int);
+ method @NonNull public android.location.GlonassSatelliteEphemeris.Builder setUpdateIntervalOdd(boolean);
}
public static final class GlonassSatelliteEphemeris.GlonassSatelliteClockModel implements android.os.Parcelable {
method public int describeContents();
method @FloatRange(from=-0.002F, to=0.002f) public double getClockBias();
method @FloatRange(from=-9.32E-10F, to=9.32E-10f) public double getFrequencyBias();
- method @IntRange(from=0xfffffff9, to=6) public int getFrequencyNumber();
+ method @IntRange(from=0xfffffff9, to=6) public int getFrequencyChannelNumber();
+ method @FloatRange(from=-1.4E-8F, to=1.4E-8f) public double getGroupDelayDiffSeconds();
method @IntRange(from=0) public long getTimeOfClockSeconds();
+ method public boolean isGroupDelayDiffSecondsAvailable();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.location.GlonassSatelliteEphemeris.GlonassSatelliteClockModel> CREATOR;
}
@@ -365,7 +385,9 @@ package android.location {
method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteClockModel build();
method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteClockModel.Builder setClockBias(@FloatRange(from=-0.002F, to=0.002f) double);
method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteClockModel.Builder setFrequencyBias(@FloatRange(from=-9.32E-10F, to=9.32E-10f) double);
- method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteClockModel.Builder setFrequencyNumber(@IntRange(from=0xfffffff9, to=6) int);
+ method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteClockModel.Builder setFrequencyChannelNumber(@IntRange(from=0xfffffff9, to=6) int);
+ method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteClockModel.Builder setGroupDelayDiffSeconds(@FloatRange(from=-1.4E-8F, to=1.4E-8f) double);
+ method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteClockModel.Builder setGroupDelayDiffSecondsAvailable(boolean);
method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteClockModel.Builder setTimeOfClockSeconds(@IntRange(from=0) long);
}
@@ -401,10 +423,11 @@ package android.location {
@FlaggedApi("android.location.flags.gnss_assistance_interface") public final class GnssAlmanac implements android.os.Parcelable {
method public int describeContents();
method @NonNull public java.util.List<android.location.GnssAlmanac.GnssSatelliteAlmanac> getGnssSatelliteAlmanacs();
- method @IntRange(from=0) public int getIod();
+ method @IntRange(from=0) public int getIoda();
method @IntRange(from=0) public long getIssueDateMillis();
method @IntRange(from=0, to=604800) public int getToaSeconds();
method @IntRange(from=0) public int getWeekNumber();
+ method public boolean isCompleteAlmanacProvided();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.location.GnssAlmanac> CREATOR;
}
@@ -412,8 +435,9 @@ package android.location {
public static final class GnssAlmanac.Builder {
ctor public GnssAlmanac.Builder();
method @NonNull public android.location.GnssAlmanac build();
+ method @NonNull public android.location.GnssAlmanac.Builder setCompleteAlmanacProvided(boolean);
method @NonNull public android.location.GnssAlmanac.Builder setGnssSatelliteAlmanacs(@NonNull java.util.List<android.location.GnssAlmanac.GnssSatelliteAlmanac>);
- method @NonNull public android.location.GnssAlmanac.Builder setIod(@IntRange(from=0) int);
+ method @NonNull public android.location.GnssAlmanac.Builder setIoda(@IntRange(from=0) int);
method @NonNull public android.location.GnssAlmanac.Builder setIssueDateMillis(@IntRange(from=0) long);
method @NonNull public android.location.GnssAlmanac.Builder setToaSeconds(@IntRange(from=0, to=604800) int);
method @NonNull public android.location.GnssAlmanac.Builder setWeekNumber(@IntRange(from=0) int);
@@ -916,11 +940,11 @@ package android.location {
@FlaggedApi("android.location.flags.gnss_assistance_interface") public final class GpsSatelliteEphemeris implements android.os.Parcelable {
method public int describeContents();
method @NonNull public android.location.GpsSatelliteEphemeris.GpsL2Params getGpsL2Params();
- method @IntRange(from=1, to=32) public int getPrn();
method @NonNull public android.location.GpsSatelliteEphemeris.GpsSatelliteClockModel getSatelliteClockModel();
method @NonNull public android.location.SatelliteEphemerisTime getSatelliteEphemerisTime();
method @NonNull public android.location.GpsSatelliteEphemeris.GpsSatelliteHealth getSatelliteHealth();
method @NonNull public android.location.KeplerianOrbitModel getSatelliteOrbitModel();
+ method @IntRange(from=1, to=32) public int getSvid();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.location.GpsSatelliteEphemeris> CREATOR;
}
@@ -929,11 +953,11 @@ package android.location {
ctor public GpsSatelliteEphemeris.Builder();
method @NonNull public android.location.GpsSatelliteEphemeris build();
method @NonNull public android.location.GpsSatelliteEphemeris.Builder setGpsL2Params(@NonNull android.location.GpsSatelliteEphemeris.GpsL2Params);
- method @NonNull public android.location.GpsSatelliteEphemeris.Builder setPrn(@IntRange(from=1, to=32) int);
method @NonNull public android.location.GpsSatelliteEphemeris.Builder setSatelliteClockModel(@NonNull android.location.GpsSatelliteEphemeris.GpsSatelliteClockModel);
method @NonNull public android.location.GpsSatelliteEphemeris.Builder setSatelliteEphemerisTime(@NonNull android.location.SatelliteEphemerisTime);
method @NonNull public android.location.GpsSatelliteEphemeris.Builder setSatelliteHealth(@NonNull android.location.GpsSatelliteEphemeris.GpsSatelliteHealth);
method @NonNull public android.location.GpsSatelliteEphemeris.Builder setSatelliteOrbitModel(@NonNull android.location.KeplerianOrbitModel);
+ method @NonNull public android.location.GpsSatelliteEphemeris.Builder setSvid(@IntRange(from=1, to=32) int);
}
public static final class GpsSatelliteEphemeris.GpsL2Params implements android.os.Parcelable {
@@ -1225,11 +1249,11 @@ package android.location {
@FlaggedApi("android.location.flags.gnss_assistance_interface") public final class QzssSatelliteEphemeris implements android.os.Parcelable {
method public int describeContents();
method @NonNull public android.location.GpsSatelliteEphemeris.GpsL2Params getGpsL2Params();
- method @IntRange(from=183, to=206) public int getPrn();
method @NonNull public android.location.GpsSatelliteEphemeris.GpsSatelliteClockModel getSatelliteClockModel();
method @NonNull public android.location.SatelliteEphemerisTime getSatelliteEphemerisTime();
method @NonNull public android.location.GpsSatelliteEphemeris.GpsSatelliteHealth getSatelliteHealth();
method @NonNull public android.location.KeplerianOrbitModel getSatelliteOrbitModel();
+ method @IntRange(from=183, to=206) public int getSvid();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.location.QzssSatelliteEphemeris> CREATOR;
}
@@ -1238,11 +1262,11 @@ package android.location {
ctor public QzssSatelliteEphemeris.Builder();
method @NonNull public android.location.QzssSatelliteEphemeris build();
method @NonNull public android.location.QzssSatelliteEphemeris.Builder setGpsL2Params(@NonNull android.location.GpsSatelliteEphemeris.GpsL2Params);
- method @NonNull public android.location.QzssSatelliteEphemeris.Builder setPrn(@IntRange(from=183, to=206) int);
method @NonNull public android.location.QzssSatelliteEphemeris.Builder setSatelliteClockModel(@NonNull android.location.GpsSatelliteEphemeris.GpsSatelliteClockModel);
method @NonNull public android.location.QzssSatelliteEphemeris.Builder setSatelliteEphemerisTime(@NonNull android.location.SatelliteEphemerisTime);
method @NonNull public android.location.QzssSatelliteEphemeris.Builder setSatelliteHealth(@NonNull android.location.GpsSatelliteEphemeris.GpsSatelliteHealth);
method @NonNull public android.location.QzssSatelliteEphemeris.Builder setSatelliteOrbitModel(@NonNull android.location.KeplerianOrbitModel);
+ method @NonNull public android.location.QzssSatelliteEphemeris.Builder setSvid(@IntRange(from=183, to=206) int);
}
@FlaggedApi("android.location.flags.gnss_assistance_interface") public final class RealTimeIntegrityModel implements android.os.Parcelable {
diff --git a/location/java/android/location/BeidouSatelliteEphemeris.java b/location/java/android/location/BeidouSatelliteEphemeris.java
index 6bd91e3318c3..3382c20964d9 100644
--- a/location/java/android/location/BeidouSatelliteEphemeris.java
+++ b/location/java/android/location/BeidouSatelliteEphemeris.java
@@ -35,8 +35,8 @@ import com.android.internal.util.Preconditions;
@FlaggedApi(Flags.FLAG_GNSS_ASSISTANCE_INTERFACE)
@SystemApi
public final class BeidouSatelliteEphemeris implements Parcelable {
- /** The PRN number of the Beidou satellite. */
- private final int mPrn;
+ /** The PRN or satellite ID number for the Beidou satellite. */
+ private final int mSvid;
/** Satellite clock model. */
private final BeidouSatelliteClockModel mSatelliteClockModel;
@@ -51,8 +51,8 @@ public final class BeidouSatelliteEphemeris implements Parcelable {
private final BeidouSatelliteEphemerisTime mSatelliteEphemerisTime;
private BeidouSatelliteEphemeris(Builder builder) {
- // Allow PRN beyond the range to support potential future extensibility.
- Preconditions.checkArgument(builder.mPrn >= 1);
+ // Allow Svid beyond the range to support potential future extensibility.
+ Preconditions.checkArgument(builder.mSvid >= 1);
Preconditions.checkNotNull(builder.mSatelliteClockModel,
"SatelliteClockModel cannot be null");
Preconditions.checkNotNull(builder.mSatelliteOrbitModel,
@@ -61,17 +61,17 @@ public final class BeidouSatelliteEphemeris implements Parcelable {
"SatelliteHealth cannot be null");
Preconditions.checkNotNull(builder.mSatelliteEphemerisTime,
"SatelliteEphemerisTime cannot be null");
- mPrn = builder.mPrn;
+ mSvid = builder.mSvid;
mSatelliteClockModel = builder.mSatelliteClockModel;
mSatelliteOrbitModel = builder.mSatelliteOrbitModel;
mSatelliteHealth = builder.mSatelliteHealth;
mSatelliteEphemerisTime = builder.mSatelliteEphemerisTime;
}
- /** Returns the PRN of the satellite. */
+ /** Returns the PRN or satellite ID number for the Beidou satellite. */
@IntRange(from = 1, to = 63)
- public int getPrn() {
- return mPrn;
+ public int getSvid() {
+ return mSvid;
}
/** Returns the satellite clock model. */
@@ -105,7 +105,7 @@ public final class BeidouSatelliteEphemeris implements Parcelable {
public BeidouSatelliteEphemeris createFromParcel(Parcel in) {
final BeidouSatelliteEphemeris.Builder beidouSatelliteEphemeris =
new Builder()
- .setPrn(in.readInt())
+ .setSvid(in.readInt())
.setSatelliteClockModel(
in.readTypedObject(BeidouSatelliteClockModel.CREATOR))
.setSatelliteOrbitModel(
@@ -131,7 +131,7 @@ public final class BeidouSatelliteEphemeris implements Parcelable {
@Override
public void writeToParcel(@NonNull Parcel parcel, int flags) {
- parcel.writeInt(mPrn);
+ parcel.writeInt(mSvid);
parcel.writeTypedObject(mSatelliteClockModel, flags);
parcel.writeTypedObject(mSatelliteOrbitModel, flags);
parcel.writeTypedObject(mSatelliteHealth, flags);
@@ -142,7 +142,7 @@ public final class BeidouSatelliteEphemeris implements Parcelable {
@NonNull
public String toString() {
StringBuilder builder = new StringBuilder("BeidouSatelliteEphemeris[");
- builder.append("prn = ").append(mPrn);
+ builder.append("svid = ").append(mSvid);
builder.append(", satelliteClockModel = ").append(mSatelliteClockModel);
builder.append(", satelliteOrbitModel = ").append(mSatelliteOrbitModel);
builder.append(", satelliteHealth = ").append(mSatelliteHealth);
@@ -153,16 +153,16 @@ public final class BeidouSatelliteEphemeris implements Parcelable {
/** Builder for {@link BeidouSatelliteEphemeris} */
public static final class Builder {
- private int mPrn;
+ private int mSvid;
private BeidouSatelliteClockModel mSatelliteClockModel;
private KeplerianOrbitModel mSatelliteOrbitModel;
private BeidouSatelliteHealth mSatelliteHealth;
private BeidouSatelliteEphemerisTime mSatelliteEphemerisTime;
- /** Sets the PRN of the satellite. */
+ /** Sets the PRN or satellite ID number for the Beidou satellite. */
@NonNull
- public Builder setPrn(int prn) {
- mPrn = prn;
+ public Builder setSvid(int svid) {
+ mSvid = svid;
return this;
}
diff --git a/location/java/android/location/GalileoSatelliteEphemeris.java b/location/java/android/location/GalileoSatelliteEphemeris.java
index 7dd371176267..08218f4bf83e 100644
--- a/location/java/android/location/GalileoSatelliteEphemeris.java
+++ b/location/java/android/location/GalileoSatelliteEphemeris.java
@@ -43,8 +43,8 @@ import java.util.List;
@SystemApi
public final class GalileoSatelliteEphemeris implements Parcelable {
- /** Satellite code number. */
- private int mSatelliteCodeNumber;
+ /** PRN or satellite ID number for the Galileo satellite. */
+ private int mSvid;
/** Array of satellite clock model. */
@NonNull private final List<GalileoSatelliteClockModel> mSatelliteClockModels;
@@ -59,8 +59,8 @@ public final class GalileoSatelliteEphemeris implements Parcelable {
@NonNull private final SatelliteEphemerisTime mSatelliteEphemerisTime;
private GalileoSatelliteEphemeris(Builder builder) {
- // Allow satelliteCodeNumber beyond the range to support potential future extensibility.
- Preconditions.checkArgument(builder.mSatelliteCodeNumber >= 1);
+ // Allow svid beyond the range to support potential future extensibility.
+ Preconditions.checkArgument(builder.mSvid >= 1);
Preconditions.checkNotNull(
builder.mSatelliteClockModels, "SatelliteClockModels cannot be null");
Preconditions.checkNotNull(
@@ -68,7 +68,7 @@ public final class GalileoSatelliteEphemeris implements Parcelable {
Preconditions.checkNotNull(builder.mSatelliteHealth, "SatelliteHealth cannot be null");
Preconditions.checkNotNull(
builder.mSatelliteEphemerisTime, "SatelliteEphemerisTime cannot be null");
- mSatelliteCodeNumber = builder.mSatelliteCodeNumber;
+ mSvid = builder.mSvid;
final List<GalileoSatelliteClockModel> satelliteClockModels = builder.mSatelliteClockModels;
mSatelliteClockModels = Collections.unmodifiableList(new ArrayList<>(satelliteClockModels));
mSatelliteOrbitModel = builder.mSatelliteOrbitModel;
@@ -76,10 +76,10 @@ public final class GalileoSatelliteEphemeris implements Parcelable {
mSatelliteEphemerisTime = builder.mSatelliteEphemerisTime;
}
- /** Returns the satellite code number. */
+ /** Returns the PRN or satellite ID number for the Galileo satellite. */
@IntRange(from = 1, to = 36)
- public int getSatelliteCodeNumber() {
- return mSatelliteCodeNumber;
+ public int getSvid() {
+ return mSvid;
}
/** Returns the list of satellite clock models. */
@@ -113,7 +113,7 @@ public final class GalileoSatelliteEphemeris implements Parcelable {
public GalileoSatelliteEphemeris createFromParcel(Parcel in) {
final GalileoSatelliteEphemeris.Builder galileoSatelliteEphemeris =
new Builder();
- galileoSatelliteEphemeris.setSatelliteCodeNumber(in.readInt());
+ galileoSatelliteEphemeris.setSvid(in.readInt());
List<GalileoSatelliteClockModel> satelliteClockModels = new ArrayList<>();
in.readTypedList(satelliteClockModels, GalileoSatelliteClockModel.CREATOR);
galileoSatelliteEphemeris.setSatelliteClockModels(satelliteClockModels);
@@ -139,7 +139,7 @@ public final class GalileoSatelliteEphemeris implements Parcelable {
@Override
public void writeToParcel(@NonNull Parcel parcel, int flags) {
- parcel.writeInt(mSatelliteCodeNumber);
+ parcel.writeInt(mSvid);
parcel.writeTypedList(mSatelliteClockModels, flags);
parcel.writeTypedObject(mSatelliteOrbitModel, flags);
parcel.writeTypedObject(mSatelliteHealth, flags);
@@ -150,7 +150,7 @@ public final class GalileoSatelliteEphemeris implements Parcelable {
@NonNull
public String toString() {
StringBuilder builder = new StringBuilder("GalileoSatelliteEphemeris[");
- builder.append("satelliteCodeNumber = ").append(mSatelliteCodeNumber);
+ builder.append("svid = ").append(mSvid);
builder.append(", satelliteClockModels = ").append(mSatelliteClockModels);
builder.append(", satelliteOrbitModel = ").append(mSatelliteOrbitModel);
builder.append(", satelliteHealth = ").append(mSatelliteHealth);
@@ -161,17 +161,16 @@ public final class GalileoSatelliteEphemeris implements Parcelable {
/** Builder for {@link GalileoSatelliteEphemeris}. */
public static final class Builder {
- private int mSatelliteCodeNumber;
+ private int mSvid;
private List<GalileoSatelliteClockModel> mSatelliteClockModels;
private KeplerianOrbitModel mSatelliteOrbitModel;
private GalileoSvHealth mSatelliteHealth;
private SatelliteEphemerisTime mSatelliteEphemerisTime;
- /** Sets the satellite code number. */
+ /** Sets the PRN or satellite ID number for the Galileo satellite. */
@NonNull
- public Builder setSatelliteCodeNumber(
- @IntRange(from = 1, to = 36) int satelliteCodeNumber) {
- mSatelliteCodeNumber = satelliteCodeNumber;
+ public Builder setSvid(@IntRange(from = 1, to = 36) int svid) {
+ mSvid = svid;
return this;
}
@@ -218,37 +217,107 @@ public final class GalileoSatelliteEphemeris implements Parcelable {
* <p>This is defined in Galileo-OS-SIS-ICD 5.1.9.3.
*/
public static final class GalileoSvHealth implements Parcelable {
+
+ /**
+ * Galileo data validity status.
+ *
+ * @hide
+ */
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef({DATA_STATUS_DATA_VALID, DATA_STATUS_WORKING_WITHOUT_GUARANTEE})
+ public @interface GalileoDataValidityStatus {}
+
+ /**
+ * The following enumerations must be in sync with the values declared in
+ * GalileoHealthDataVaidityType in GalileoSatelliteEphemeris.aidl.
+ */
+
+ /** Data validity status is data valid. */
+ public static final int DATA_STATUS_DATA_VALID = 0;
+
+ /** Data validity status is working without guarantee. */
+ public static final int DATA_STATUS_WORKING_WITHOUT_GUARANTEE = 1;
+
+ /**
+ * Galileo signal health status.
+ *
+ * @hide
+ */
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef({
+ HEALTH_STATUS_OK,
+ HEALTH_STATUS_OUT_OF_SERVICE,
+ HEALTH_STATUS_EXTENDED_OPERATION_MODE,
+ HEALTH_STATUS_IN_TEST
+ })
+ public @interface GalileoHealthStatus {}
+
+ /**
+ * The following enumerations must be in sync with the values declared in
+ * GalileoHealthStatusType in GalileoSatelliteEphemeris.aidl.
+ */
+
+ /** Health status is ok. */
+ public static final int HEALTH_STATUS_OK = 0;
+
+ /** Health status is out of service. */
+ public static final int HEALTH_STATUS_OUT_OF_SERVICE = 1;
+
+ /** Health status is in extended operation mode. */
+ public static final int HEALTH_STATUS_EXTENDED_OPERATION_MODE = 2;
+
+ /** Health status is in test mode. */
+ public static final int HEALTH_STATUS_IN_TEST = 3;
+
/** E1-B data validity status. */
- private int mDataValidityStatusE1b;
+ private @GalileoDataValidityStatus int mDataValidityStatusE1b;
/** E1-B/C signal health status. */
- private int mSignalHealthStatusE1b;
+ private @GalileoHealthStatus int mSignalHealthStatusE1b;
/** E5a data validity status. */
- private int mDataValidityStatusE5a;
+ private @GalileoDataValidityStatus int mDataValidityStatusE5a;
/** E5a signal health status. */
- private int mSignalHealthStatusE5a;
+ private @GalileoHealthStatus int mSignalHealthStatusE5a;
/** E5b data validity status. */
- private int mDataValidityStatusE5b;
+ private @GalileoDataValidityStatus int mDataValidityStatusE5b;
/** E5b signal health status. */
- private int mSignalHealthStatusE5b;
+ private @GalileoHealthStatus int mSignalHealthStatusE5b;
private GalileoSvHealth(Builder builder) {
Preconditions.checkArgumentInRange(
- builder.mDataValidityStatusE1b, 0, 1, "DataValidityStatusE1b");
+ builder.mDataValidityStatusE1b,
+ DATA_STATUS_DATA_VALID,
+ DATA_STATUS_WORKING_WITHOUT_GUARANTEE,
+ "DataValidityStatusE1b");
Preconditions.checkArgumentInRange(
- builder.mSignalHealthStatusE1b, 0, 3, "SignalHealthStatusE1b");
+ builder.mSignalHealthStatusE1b,
+ HEALTH_STATUS_OK,
+ HEALTH_STATUS_IN_TEST,
+ "SignalHealthStatusE1b");
Preconditions.checkArgumentInRange(
- builder.mDataValidityStatusE5a, 0, 1, "DataValidityStatusE5a");
+ builder.mDataValidityStatusE5a,
+ DATA_STATUS_DATA_VALID,
+ DATA_STATUS_WORKING_WITHOUT_GUARANTEE,
+ "DataValidityStatusE5a");
Preconditions.checkArgumentInRange(
- builder.mSignalHealthStatusE5a, 0, 3, "SignalHealthStatusE5a");
+ builder.mSignalHealthStatusE5a,
+ HEALTH_STATUS_OK,
+ HEALTH_STATUS_IN_TEST,
+ "SignalHealthStatusE5a");
Preconditions.checkArgumentInRange(
- builder.mDataValidityStatusE5b, 0, 1, "DataValidityStatusE5b");
+ builder.mDataValidityStatusE5b,
+ DATA_STATUS_DATA_VALID,
+ DATA_STATUS_WORKING_WITHOUT_GUARANTEE,
+ "DataValidityStatusE5b");
Preconditions.checkArgumentInRange(
- builder.mSignalHealthStatusE5b, 0, 3, "SignalHealthStatusE5b");
+ builder.mSignalHealthStatusE5b,
+ HEALTH_STATUS_OK,
+ HEALTH_STATUS_IN_TEST,
+ "SignalHealthStatusE5b");
mDataValidityStatusE1b = builder.mDataValidityStatusE1b;
mSignalHealthStatusE1b = builder.mSignalHealthStatusE1b;
mDataValidityStatusE5a = builder.mDataValidityStatusE5a;
@@ -258,37 +327,37 @@ public final class GalileoSatelliteEphemeris implements Parcelable {
}
/** Returns the E1-B data validity status. */
- @IntRange(from = 0, to = 1)
+ @GalileoDataValidityStatus
public int getDataValidityStatusE1b() {
return mDataValidityStatusE1b;
}
/** Returns the E1-B/C signal health status. */
- @IntRange(from = 0, to = 3)
+ @GalileoHealthStatus
public int getSignalHealthStatusE1b() {
return mSignalHealthStatusE1b;
}
/** Returns the E5a data validity status. */
- @IntRange(from = 0, to = 1)
+ @GalileoDataValidityStatus
public int getDataValidityStatusE5a() {
return mDataValidityStatusE5a;
}
/** Returns the E5a signal health status. */
- @IntRange(from = 0, to = 3)
+ @GalileoHealthStatus
public int getSignalHealthStatusE5a() {
return mSignalHealthStatusE5a;
}
/** Returns the E5b data validity status. */
- @IntRange(from = 0, to = 1)
+ @GalileoDataValidityStatus
public int getDataValidityStatusE5b() {
return mDataValidityStatusE5b;
}
/** Returns the E5b signal health status. */
- @IntRange(from = 0, to = 3)
+ @GalileoHealthStatus
public int getSignalHealthStatusE5b() {
return mSignalHealthStatusE5b;
}
@@ -355,7 +424,7 @@ public final class GalileoSatelliteEphemeris implements Parcelable {
/** Sets the E1-B data validity status. */
@NonNull
public Builder setDataValidityStatusE1b(
- @IntRange(from = 0, to = 1) int dataValidityStatusE1b) {
+ @GalileoDataValidityStatus int dataValidityStatusE1b) {
mDataValidityStatusE1b = dataValidityStatusE1b;
return this;
}
@@ -363,7 +432,7 @@ public final class GalileoSatelliteEphemeris implements Parcelable {
/** Sets the E1-B/C signal health status. */
@NonNull
public Builder setSignalHealthStatusE1b(
- @IntRange(from = 0, to = 3) int signalHealthStatusE1b) {
+ @GalileoHealthStatus int signalHealthStatusE1b) {
mSignalHealthStatusE1b = signalHealthStatusE1b;
return this;
}
@@ -371,7 +440,7 @@ public final class GalileoSatelliteEphemeris implements Parcelable {
/** Sets the E5a data validity status. */
@NonNull
public Builder setDataValidityStatusE5a(
- @IntRange(from = 0, to = 1) int dataValidityStatusE5a) {
+ @GalileoDataValidityStatus int dataValidityStatusE5a) {
mDataValidityStatusE5a = dataValidityStatusE5a;
return this;
}
@@ -379,7 +448,7 @@ public final class GalileoSatelliteEphemeris implements Parcelable {
/** Sets the E5a signal health status. */
@NonNull
public Builder setSignalHealthStatusE5a(
- @IntRange(from = 0, to = 3) int signalHealthStatusE5a) {
+ @GalileoHealthStatus int signalHealthStatusE5a) {
mSignalHealthStatusE5a = signalHealthStatusE5a;
return this;
}
@@ -387,7 +456,7 @@ public final class GalileoSatelliteEphemeris implements Parcelable {
/** Sets the E5b data validity status. */
@NonNull
public Builder setDataValidityStatusE5b(
- @IntRange(from = 0, to = 1) int dataValidityStatusE5b) {
+ @GalileoDataValidityStatus int dataValidityStatusE5b) {
mDataValidityStatusE5b = dataValidityStatusE5b;
return this;
}
@@ -395,7 +464,7 @@ public final class GalileoSatelliteEphemeris implements Parcelable {
/** Sets the E5b signal health status. */
@NonNull
public Builder setSignalHealthStatusE5b(
- @IntRange(from = 0, to = 3) int signalHealthStatusE5b) {
+ @GalileoHealthStatus int signalHealthStatusE5b) {
mSignalHealthStatusE5b = signalHealthStatusE5b;
return this;
}
diff --git a/location/java/android/location/GlonassAlmanac.java b/location/java/android/location/GlonassAlmanac.java
index 861dc5d257c4..37657435b98a 100644
--- a/location/java/android/location/GlonassAlmanac.java
+++ b/location/java/android/location/GlonassAlmanac.java
@@ -21,6 +21,7 @@ import android.annotation.FloatRange;
import android.annotation.IntRange;
import android.annotation.NonNull;
import android.annotation.SystemApi;
+import android.location.GlonassSatelliteEphemeris.GlonassHealthStatus;
import android.location.flags.Flags;
import android.os.Parcel;
import android.os.Parcelable;
@@ -121,11 +122,17 @@ public final class GlonassAlmanac implements Parcelable {
/** Slot number. */
private final int mSlotNumber;
- /** Satellite health information (0=healthy, 1=unhealthy). */
- private final int mSvHealth;
+ /** Satellite health status. */
+ private final @GlonassHealthStatus int mHealthState;
/** Frequency channel number. */
- private final int mFreqChannel;
+ private final int mFrequencyChannelNumber;
+
+ /** Calendar day number within the four-year period beginning since the leap year. */
+ private final int mCalendarDayNumber;
+
+ /** Flag to indicates if the satellite is a GLONASS-M satellitee. */
+ private final boolean mGlonassM;
/** Coarse value of satellite time correction to GLONASS time in seconds. */
private final double mTau;
@@ -148,15 +155,18 @@ public final class GlonassAlmanac implements Parcelable {
/** Eccentricity. */
private final double mEccentricity;
- /** Argument of perigee in radians. */
+ /** Argument of perigee in semi-circles. */
private final double mOmega;
private GlonassSatelliteAlmanac(Builder builder) {
// Allow slotNumber beyond the range to support potential future extensibility.
Preconditions.checkArgument(builder.mSlotNumber >= 1);
- // Allow svHealth beyond the range to support potential future extensibility.
- Preconditions.checkArgument(builder.mSvHealth >= 0);
- Preconditions.checkArgumentInRange(builder.mFreqChannel, 0, 31, "FreqChannel");
+ // Allow healthState beyond the range to support potential future extensibility.
+ Preconditions.checkArgument(builder.mHealthState >= 0);
+ Preconditions.checkArgumentInRange(
+ builder.mFrequencyChannelNumber, 0, 31, "FrequencyChannelNumber");
+ Preconditions.checkArgumentInRange(
+ builder.mCalendarDayNumber, 1, 1461, "CalendarDayNumber");
Preconditions.checkArgumentInRange(builder.mTau, -1.9e-3f, 1.9e-3f, "Tau");
Preconditions.checkArgumentInRange(builder.mTLambda, 0.0f, 44100.0f, "TLambda");
Preconditions.checkArgumentInRange(builder.mLambda, -1.0f, 1.0f, "Lambda");
@@ -166,8 +176,10 @@ public final class GlonassAlmanac implements Parcelable {
Preconditions.checkArgumentInRange(builder.mEccentricity, 0.0f, 0.03f, "Eccentricity");
Preconditions.checkArgumentInRange(builder.mOmega, -1.0f, 1.0f, "Omega");
mSlotNumber = builder.mSlotNumber;
- mSvHealth = builder.mSvHealth;
- mFreqChannel = builder.mFreqChannel;
+ mHealthState = builder.mHealthState;
+ mFrequencyChannelNumber = builder.mFrequencyChannelNumber;
+ mCalendarDayNumber = builder.mCalendarDayNumber;
+ mGlonassM = builder.mGlonassM;
mTau = builder.mTau;
mTLambda = builder.mTLambda;
mLambda = builder.mLambda;
@@ -184,16 +196,29 @@ public final class GlonassAlmanac implements Parcelable {
return mSlotNumber;
}
- /** Returns the Satellite health information (0=healthy, 1=unhealthy). */
- @IntRange(from = 0, to = 1)
- public int getSvHealth() {
- return mSvHealth;
+ /** Returns the satellite health status. */
+ public @GlonassHealthStatus int getHealthState() {
+ return mHealthState;
}
/** Returns the frequency channel number. */
@IntRange(from = 0, to = 31)
- public int getFreqChannel() {
- return mFreqChannel;
+ public int getFrequencyChannelNumber() {
+ return mFrequencyChannelNumber;
+ }
+
+ /**
+ * Returns the calendar day number within the four-year period beginning since the leap
+ * year.
+ */
+ @IntRange(from = 1, to = 1461)
+ public int getCalendarDayNumber() {
+ return mCalendarDayNumber;
+ }
+
+ /** Returns true if the satellite is a GLONASS-M satellitee, false otherwise. */
+ public boolean isGlonassM() {
+ return mGlonassM;
}
/** Returns the coarse value of satellite time correction to GLONASS time in seconds. */
@@ -241,7 +266,7 @@ public final class GlonassAlmanac implements Parcelable {
return mEccentricity;
}
- /** Returns the argument of perigee in radians. */
+ /** Returns the Argument of perigee in semi-circles. */
@FloatRange(from = -1.0f, to = 1.0f)
public double getOmega() {
return mOmega;
@@ -255,8 +280,10 @@ public final class GlonassAlmanac implements Parcelable {
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
dest.writeInt(mSlotNumber);
- dest.writeInt(mSvHealth);
- dest.writeInt(mFreqChannel);
+ dest.writeInt(mHealthState);
+ dest.writeInt(mFrequencyChannelNumber);
+ dest.writeInt(mCalendarDayNumber);
+ dest.writeBoolean(mGlonassM);
dest.writeDouble(mTau);
dest.writeDouble(mTLambda);
dest.writeDouble(mLambda);
@@ -273,8 +300,10 @@ public final class GlonassAlmanac implements Parcelable {
public GlonassSatelliteAlmanac createFromParcel(@NonNull Parcel source) {
return new GlonassSatelliteAlmanac.Builder()
.setSlotNumber(source.readInt())
- .setSvHealth(source.readInt())
- .setFreqChannel(source.readInt())
+ .setHealthState(source.readInt())
+ .setFrequencyChannelNumber(source.readInt())
+ .setCalendarDayNumber(source.readInt())
+ .setGlonassM(source.readBoolean())
.setTau(source.readDouble())
.setTLambda(source.readDouble())
.setLambda(source.readDouble())
@@ -297,8 +326,10 @@ public final class GlonassAlmanac implements Parcelable {
public String toString() {
StringBuilder builder = new StringBuilder("GlonassSatelliteAlmanac[");
builder.append("slotNumber = ").append(mSlotNumber);
- builder.append(", svHealth = ").append(mSvHealth);
- builder.append(", freqChannel = ").append(mFreqChannel);
+ builder.append(", healthState = ").append(mHealthState);
+ builder.append(", frequencyChannelNumber = ").append(mFrequencyChannelNumber);
+ builder.append(", calendarDayNumber = ").append(mCalendarDayNumber);
+ builder.append(", glonassM = ").append(mGlonassM);
builder.append(", tau = ").append(mTau);
builder.append(", tLambda = ").append(mTLambda);
builder.append(", lambda = ").append(mLambda);
@@ -314,8 +345,10 @@ public final class GlonassAlmanac implements Parcelable {
/** Builder for {@link GlonassSatelliteAlmanac}. */
public static final class Builder {
private int mSlotNumber;
- private int mSvHealth;
- private int mFreqChannel;
+ private int mHealthState;
+ private int mFrequencyChannelNumber;
+ private int mCalendarDayNumber;
+ private boolean mGlonassM;
private double mTau;
private double mTLambda;
private double mLambda;
@@ -332,17 +365,36 @@ public final class GlonassAlmanac implements Parcelable {
return this;
}
- /** Sets the Satellite health information (0=healthy, 1=unhealthy). */
+ /** Sets the satellite health status. */
@NonNull
- public Builder setSvHealth(@IntRange(from = 0, to = 1) int svHealth) {
- mSvHealth = svHealth;
+ public Builder setHealthState(@GlonassHealthStatus int healthState) {
+ mHealthState = healthState;
return this;
}
/** Sets the frequency channel number. */
@NonNull
- public Builder setFreqChannel(@IntRange(from = 0, to = 31) int freqChannel) {
- mFreqChannel = freqChannel;
+ public Builder setFrequencyChannelNumber(
+ @IntRange(from = 0, to = 31) int frequencyChannelNumber) {
+ mFrequencyChannelNumber = frequencyChannelNumber;
+ return this;
+ }
+
+ /**
+ * Sets the calendar day number within the four-year period beginning since the leap
+ * year.
+ */
+ @NonNull
+ public Builder setCalendarDayNumber(
+ @IntRange(from = 1, to = 1461) int calendarDayNumber) {
+ mCalendarDayNumber = calendarDayNumber;
+ return this;
+ }
+
+ /** Sets to true if the satellite is a GLONASS-M satellitee, false otherwise. */
+ @NonNull
+ public Builder setGlonassM(boolean isGlonassM) {
+ this.mGlonassM = isGlonassM;
return this;
}
@@ -401,7 +453,7 @@ public final class GlonassAlmanac implements Parcelable {
return this;
}
- /** Sets the argument of perigee in radians. */
+ /** Sets the Argument of perigee in semi-circles. */
@NonNull
public Builder setOmega(@FloatRange(from = -1.0f, to = 1.0f) double omega) {
mOmega = omega;
diff --git a/location/java/android/location/GlonassSatelliteEphemeris.java b/location/java/android/location/GlonassSatelliteEphemeris.java
index 77a6ebb50cfb..bee6047f71c8 100644
--- a/location/java/android/location/GlonassSatelliteEphemeris.java
+++ b/location/java/android/location/GlonassSatelliteEphemeris.java
@@ -18,6 +18,7 @@ package android.location;
import android.annotation.FlaggedApi;
import android.annotation.FloatRange;
+import android.annotation.IntDef;
import android.annotation.IntRange;
import android.annotation.NonNull;
import android.annotation.SystemApi;
@@ -27,6 +28,9 @@ import android.os.Parcelable;
import com.android.internal.util.Preconditions;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
/**
* A class contains ephemeris parameters specific to Glonass satellites.
*
@@ -38,11 +42,31 @@ import com.android.internal.util.Preconditions;
@SystemApi
public final class GlonassSatelliteEphemeris implements Parcelable {
+ /**
+ * Glonass signal health status.
+ *
+ * @hide
+ */
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef({HEALTH_STATUS_HEALTHY, HEALTH_STATUS_UNHEALTHY})
+ public @interface GlonassHealthStatus {}
+
+ /**
+ * The following enumerations must be in sync with the values declared in
+ * GlonassSatelliteEphemeris.aidl
+ */
+
+ /** Health status is healthy. */
+ public static final int HEALTH_STATUS_HEALTHY = 0;
+
+ /** Health status is unhealthy. */
+ public static final int HEALTH_STATUS_UNHEALTHY = 1;
+
/** L1/Satellite system (R), satellite number (slot number in sat. constellation). */
private final int mSlotNumber;
- /** Health state (0=healthy, 1=unhealthy). */
- private final int mHealthState;
+ /** Health state. */
+ private final @GlonassHealthStatus int mHealthState;
/** Message frame time in seconds of the UTC week (tk+nd*86400). */
private final double mFrameTimeSeconds;
@@ -50,6 +74,15 @@ public final class GlonassSatelliteEphemeris implements Parcelable {
/** Age of current information in days (E). */
private final int mAgeInDays;
+ /** Update and validity interval in minutes (P1) */
+ private final int mUpdateIntervalMinutes;
+
+ /** Flag to indicate if the update interval is odd or even (P2). */
+ private final boolean mUpdateIntervalOdd;
+
+ /** Flag to indicates if the satellite is a Glonass-M satellitee (M). */
+ private final boolean mGlonassM;
+
/** Satellite clock model. */
@NonNull private final GlonassSatelliteClockModel mSatelliteClockModel;
@@ -63,6 +96,8 @@ public final class GlonassSatelliteEphemeris implements Parcelable {
Preconditions.checkArgument(builder.mHealthState >= 0);
Preconditions.checkArgument(builder.mFrameTimeSeconds >= 0.0f);
Preconditions.checkArgumentInRange(builder.mAgeInDays, 0, 31, "AgeInDays");
+ Preconditions.checkArgumentInRange(
+ builder.mUpdateIntervalMinutes, 0, 60, "UpdateIntervalMinutes");
Preconditions.checkNotNull(
builder.mSatelliteClockModel, "SatelliteClockModel cannot be null");
Preconditions.checkNotNull(
@@ -71,6 +106,9 @@ public final class GlonassSatelliteEphemeris implements Parcelable {
mHealthState = builder.mHealthState;
mFrameTimeSeconds = builder.mFrameTimeSeconds;
mAgeInDays = builder.mAgeInDays;
+ mUpdateIntervalMinutes = builder.mUpdateIntervalMinutes;
+ mUpdateIntervalOdd = builder.mUpdateIntervalOdd;
+ mGlonassM = builder.mGlonassM;
mSatelliteClockModel = builder.mSatelliteClockModel;
mSatelliteOrbitModel = builder.mSatelliteOrbitModel;
}
@@ -83,9 +121,8 @@ public final class GlonassSatelliteEphemeris implements Parcelable {
return mSlotNumber;
}
- /** Returns the health state (0=healthy, 1=unhealthy). */
- @IntRange(from = 0, to = 1)
- public int getHealthState() {
+ /** Returns the health state. */
+ public @GlonassHealthStatus int getHealthState() {
return mHealthState;
}
@@ -101,6 +138,22 @@ public final class GlonassSatelliteEphemeris implements Parcelable {
return mAgeInDays;
}
+ /** Returns the update interval in minutes (P1). */
+ @IntRange(from = 0, to = 60)
+ public int getUpdateIntervalMinutes() {
+ return mUpdateIntervalMinutes;
+ }
+
+ /** Returns true if the update interval (P2) is odd, false otherwise (P2). */
+ public boolean isUpdateIntervalOdd() {
+ return mUpdateIntervalOdd;
+ }
+
+ /** Returns true if the satellite is a Glonass-M satellitee (M), false otherwise. */
+ public boolean isGlonassM() {
+ return mGlonassM;
+ }
+
/** Returns the satellite clock model. */
@NonNull
public GlonassSatelliteClockModel getSatelliteClockModel() {
@@ -124,6 +177,9 @@ public final class GlonassSatelliteEphemeris implements Parcelable {
dest.writeInt(mHealthState);
dest.writeDouble(mFrameTimeSeconds);
dest.writeInt(mAgeInDays);
+ dest.writeInt(mUpdateIntervalMinutes);
+ dest.writeBoolean(mUpdateIntervalOdd);
+ dest.writeBoolean(mGlonassM);
dest.writeTypedObject(mSatelliteClockModel, flags);
dest.writeTypedObject(mSatelliteOrbitModel, flags);
}
@@ -137,6 +193,9 @@ public final class GlonassSatelliteEphemeris implements Parcelable {
.setHealthState(source.readInt())
.setFrameTimeSeconds(source.readDouble())
.setAgeInDays(source.readInt())
+ .setUpdateIntervalMinutes(source.readInt())
+ .setUpdateIntervalOdd(source.readBoolean())
+ .setGlonassM(source.readBoolean())
.setSatelliteClockModel(
source.readTypedObject(GlonassSatelliteClockModel.CREATOR))
.setSatelliteOrbitModel(
@@ -158,6 +217,9 @@ public final class GlonassSatelliteEphemeris implements Parcelable {
builder.append(", healthState = ").append(mHealthState);
builder.append(", frameTimeSeconds = ").append(mFrameTimeSeconds);
builder.append(", ageInDays = ").append(mAgeInDays);
+ builder.append(", updateIntervalMinutes = ").append(mUpdateIntervalMinutes);
+ builder.append(", isUpdateIntervalOdd = ").append(mUpdateIntervalOdd);
+ builder.append(", isGlonassM = ").append(mGlonassM);
builder.append(", satelliteClockModel = ").append(mSatelliteClockModel);
builder.append(", satelliteOrbitModel = ").append(mSatelliteOrbitModel);
builder.append("]");
@@ -170,6 +232,9 @@ public final class GlonassSatelliteEphemeris implements Parcelable {
private int mHealthState;
private double mFrameTimeSeconds;
private int mAgeInDays;
+ private int mUpdateIntervalMinutes;
+ private boolean mUpdateIntervalOdd;
+ private boolean mGlonassM;
private GlonassSatelliteClockModel mSatelliteClockModel;
private GlonassSatelliteOrbitModel mSatelliteOrbitModel;
@@ -182,9 +247,9 @@ public final class GlonassSatelliteEphemeris implements Parcelable {
return this;
}
- /** Sets the health state (0=healthy, 1=unhealthy). */
+ /** Sets the health state. */
@NonNull
- public Builder setHealthState(@IntRange(from = 0, to = 1) int healthState) {
+ public Builder setHealthState(@GlonassHealthStatus int healthState) {
mHealthState = healthState;
return this;
}
@@ -219,6 +284,28 @@ public final class GlonassSatelliteEphemeris implements Parcelable {
return this;
}
+ /** Sets the update interval in minutes (P1). */
+ @NonNull
+ public Builder setUpdateIntervalMinutes(
+ @IntRange(from = 0, to = 60) int updateIntervalMinutes) {
+ mUpdateIntervalMinutes = updateIntervalMinutes;
+ return this;
+ }
+
+ /** Sets to true if the update interval (P2) is odd, false otherwise. */
+ @NonNull
+ public Builder setUpdateIntervalOdd(boolean isUpdateIntervalOdd) {
+ mUpdateIntervalOdd = isUpdateIntervalOdd;
+ return this;
+ }
+
+ /** Sets to true if the satellite is a Glonass-M satellitee (M), false otherwise. */
+ @NonNull
+ public Builder setGlonassM(boolean isGlonassM) {
+ mGlonassM = isGlonassM;
+ return this;
+ }
+
/** Builds a {@link GlonassSatelliteEphemeris}. */
@NonNull
public GlonassSatelliteEphemeris build() {
@@ -246,19 +333,36 @@ public final class GlonassSatelliteEphemeris implements Parcelable {
/** Frequency bias (+GammaN). */
private final double mFrequencyBias;
- /** Frequency number. */
- private final int mFrequencyNumber;
+ /** Frequency channel number. */
+ private final int mFrequencyChannelNumber;
+
+ /* L1/L2 group delay difference in seconds (DeltaTau). */
+ private final double mGroupDelayDiffSeconds;
+
+ /**
+ * Whether the L1/L2 group delay difference in seconds (DeltaTau) is available.
+ *
+ * <p>It is set to true if available, otherwise false.
+ */
+ private final boolean mGroupDelayDiffSecondsAvailable;
private GlonassSatelliteClockModel(Builder builder) {
Preconditions.checkArgument(builder.mTimeOfClockSeconds >= 0);
Preconditions.checkArgumentInRange(builder.mClockBias, -0.002f, 0.002f, "ClockBias");
Preconditions.checkArgumentInRange(
builder.mFrequencyBias, -9.32e-10f, 9.32e-10f, "FrequencyBias");
- Preconditions.checkArgumentInRange(builder.mFrequencyNumber, -7, 6, "FrequencyNumber");
+ Preconditions.checkArgumentInRange(
+ builder.mFrequencyChannelNumber, -7, 6, "FrequencyChannelNumber");
+ if (builder.mGroupDelayDiffSecondsAvailable) {
+ Preconditions.checkArgumentInRange(
+ builder.mGroupDelayDiffSeconds, -1.4e-8f, 1.4e-8f, "GroupDelayDiffSeconds");
+ }
mTimeOfClockSeconds = builder.mTimeOfClockSeconds;
mClockBias = builder.mClockBias;
mFrequencyBias = builder.mFrequencyBias;
- mFrequencyNumber = builder.mFrequencyNumber;
+ mFrequencyChannelNumber = builder.mFrequencyChannelNumber;
+ mGroupDelayDiffSeconds = builder.mGroupDelayDiffSeconds;
+ mGroupDelayDiffSecondsAvailable = builder.mGroupDelayDiffSecondsAvailable;
}
/** Returns the time of clock in seconds (UTC). */
@@ -279,10 +383,21 @@ public final class GlonassSatelliteEphemeris implements Parcelable {
return mFrequencyBias;
}
- /** Returns the frequency number. */
+ /** Returns the Frequency channel number. */
@IntRange(from = -7, to = 6)
- public int getFrequencyNumber() {
- return mFrequencyNumber;
+ public int getFrequencyChannelNumber() {
+ return mFrequencyChannelNumber;
+ }
+
+ /** Returns the L1/L2 group delay difference in seconds (DeltaTau). */
+ @FloatRange(from = -1.4e-8f, to = 1.4e-8f)
+ public double getGroupDelayDiffSeconds() {
+ return mGroupDelayDiffSeconds;
+ }
+
+ /** Returns whether the L1/L2 group delay difference in seconds (DeltaTau) is available. */
+ public boolean isGroupDelayDiffSecondsAvailable() {
+ return mGroupDelayDiffSecondsAvailable;
}
@Override
@@ -295,7 +410,9 @@ public final class GlonassSatelliteEphemeris implements Parcelable {
dest.writeLong(mTimeOfClockSeconds);
dest.writeDouble(mClockBias);
dest.writeDouble(mFrequencyBias);
- dest.writeInt(mFrequencyNumber);
+ dest.writeInt(mFrequencyChannelNumber);
+ dest.writeDouble(mGroupDelayDiffSeconds);
+ dest.writeBoolean(mGroupDelayDiffSecondsAvailable);
}
public static final @NonNull Parcelable.Creator<GlonassSatelliteClockModel> CREATOR =
@@ -306,7 +423,9 @@ public final class GlonassSatelliteEphemeris implements Parcelable {
.setTimeOfClockSeconds(source.readLong())
.setClockBias(source.readDouble())
.setFrequencyBias(source.readDouble())
- .setFrequencyNumber(source.readInt())
+ .setFrequencyChannelNumber(source.readInt())
+ .setGroupDelayDiffSeconds(source.readDouble())
+ .setGroupDelayDiffSecondsAvailable(source.readBoolean())
.build();
}
@@ -323,7 +442,10 @@ public final class GlonassSatelliteEphemeris implements Parcelable {
builder.append("timeOfClockSeconds = ").append(mTimeOfClockSeconds);
builder.append(", clockBias = ").append(mClockBias);
builder.append(", frequencyBias = ").append(mFrequencyBias);
- builder.append(", frequencyNumber = ").append(mFrequencyNumber);
+ builder.append(", frequencyChannelNumber = ").append(mFrequencyChannelNumber);
+ if (mGroupDelayDiffSecondsAvailable) {
+ builder.append(", groupDelayDiffSeconds = ").append(mGroupDelayDiffSeconds);
+ }
builder.append("]");
return builder.toString();
}
@@ -333,7 +455,9 @@ public final class GlonassSatelliteEphemeris implements Parcelable {
private long mTimeOfClockSeconds;
private double mClockBias;
private double mFrequencyBias;
- private int mFrequencyNumber;
+ private double mGroupDelayDiffSeconds;
+ private int mFrequencyChannelNumber;
+ private boolean mGroupDelayDiffSecondsAvailable;
/** Sets the time of clock in seconds (UTC). */
@NonNull
@@ -357,10 +481,27 @@ public final class GlonassSatelliteEphemeris implements Parcelable {
return this;
}
- /** Sets the frequency number. */
+ /** Sets the Frequency channel number. */
+ @NonNull
+ public Builder setFrequencyChannelNumber(
+ @IntRange(from = -7, to = 6) int frequencyChannelNumber) {
+ mFrequencyChannelNumber = frequencyChannelNumber;
+ return this;
+ }
+
+ /** Sets the L1/L2 group delay difference in seconds (DeltaTau). */
+ @NonNull
+ public Builder setGroupDelayDiffSeconds(
+ @FloatRange(from = -1.4e-8f, to = 1.4e-8f) double groupDelayDiffSeconds) {
+ mGroupDelayDiffSeconds = groupDelayDiffSeconds;
+ return this;
+ }
+
+ /** Sets whether the L1/L2 group delay difference in seconds (DeltaTau) is available. */
@NonNull
- public Builder setFrequencyNumber(@IntRange(from = -7, to = 6) int frequencyNumber) {
- mFrequencyNumber = frequencyNumber;
+ public Builder setGroupDelayDiffSecondsAvailable(
+ boolean isGroupDelayDiffSecondsAvailable) {
+ mGroupDelayDiffSecondsAvailable = isGroupDelayDiffSecondsAvailable;
return this;
}
diff --git a/location/java/android/location/GnssAlmanac.java b/location/java/android/location/GnssAlmanac.java
index 6466e45a965e..c16ad91f130a 100644
--- a/location/java/android/location/GnssAlmanac.java
+++ b/location/java/android/location/GnssAlmanac.java
@@ -59,7 +59,7 @@ public final class GnssAlmanac implements Parcelable {
*
* <p>This is unused for GPS/QZSS/Baidou.
*/
- private final int mIod;
+ private final int mIoda;
/**
* Almanac reference week number.
@@ -75,20 +75,27 @@ public final class GnssAlmanac implements Parcelable {
/** Almanac reference time in seconds. */
private final int mToaSeconds;
+ /**
+ * Flag to indicate if the satelliteAlmanacs contains complete GNSS
+ * constellation indicated by svid.
+ */
+ private final boolean mCompleteAlmanacProvided;
+
/** The list of GnssSatelliteAlmanacs. */
@NonNull private final List<GnssSatelliteAlmanac> mGnssSatelliteAlmanacs;
private GnssAlmanac(Builder builder) {
Preconditions.checkArgument(builder.mIssueDateMillis >= 0);
- Preconditions.checkArgument(builder.mIod >= 0);
+ Preconditions.checkArgument(builder.mIoda >= 0);
Preconditions.checkArgument(builder.mWeekNumber >= 0);
Preconditions.checkArgumentInRange(builder.mToaSeconds, 0, 604800, "ToaSeconds");
Preconditions.checkNotNull(
builder.mGnssSatelliteAlmanacs, "GnssSatelliteAlmanacs cannot be null");
mIssueDateMillis = builder.mIssueDateMillis;
- mIod = builder.mIod;
+ mIoda = builder.mIoda;
mWeekNumber = builder.mWeekNumber;
mToaSeconds = builder.mToaSeconds;
+ mCompleteAlmanacProvided = builder.mCompleteAlmanacProvided;
mGnssSatelliteAlmanacs =
Collections.unmodifiableList(new ArrayList<>(builder.mGnssSatelliteAlmanacs));
}
@@ -101,8 +108,8 @@ public final class GnssAlmanac implements Parcelable {
/** Returns the almanac issue of data. */
@IntRange(from = 0)
- public int getIod() {
- return mIod;
+ public int getIoda() {
+ return mIoda;
}
/**
@@ -125,6 +132,14 @@ public final class GnssAlmanac implements Parcelable {
return mToaSeconds;
}
+ /**
+ * Returns the flag to indicate if the satelliteAlmanacs contains complete GNSS
+ * constellation indicated by svid.
+ */
+ public boolean isCompleteAlmanacProvided() {
+ return mCompleteAlmanacProvided;
+ }
+
/** Returns the list of GnssSatelliteAlmanacs. */
@NonNull
public List<GnssSatelliteAlmanac> getGnssSatelliteAlmanacs() {
@@ -139,9 +154,10 @@ public final class GnssAlmanac implements Parcelable {
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
dest.writeLong(mIssueDateMillis);
- dest.writeInt(mIod);
+ dest.writeInt(mIoda);
dest.writeInt(mWeekNumber);
dest.writeInt(mToaSeconds);
+ dest.writeBoolean(mCompleteAlmanacProvided);
dest.writeTypedList(mGnssSatelliteAlmanacs);
}
@@ -151,9 +167,10 @@ public final class GnssAlmanac implements Parcelable {
public GnssAlmanac createFromParcel(Parcel in) {
GnssAlmanac.Builder gnssAlmanac = new GnssAlmanac.Builder();
gnssAlmanac.setIssueDateMillis(in.readLong());
- gnssAlmanac.setIod(in.readInt());
+ gnssAlmanac.setIoda(in.readInt());
gnssAlmanac.setWeekNumber(in.readInt());
gnssAlmanac.setToaSeconds(in.readInt());
+ gnssAlmanac.setCompleteAlmanacProvided(in.readBoolean());
List<GnssSatelliteAlmanac> satelliteAlmanacs = new ArrayList<>();
in.readTypedList(satelliteAlmanacs, GnssSatelliteAlmanac.CREATOR);
gnssAlmanac.setGnssSatelliteAlmanacs(satelliteAlmanacs);
@@ -170,9 +187,10 @@ public final class GnssAlmanac implements Parcelable {
public String toString() {
StringBuilder builder = new StringBuilder("GnssAlmanac[");
builder.append("issueDateMillis=").append(mIssueDateMillis);
- builder.append(", iod=").append(mIod);
+ builder.append(", ioda=").append(mIoda);
builder.append(", weekNumber=").append(mWeekNumber);
builder.append(", toaSeconds=").append(mToaSeconds);
+ builder.append(", completeAlmanacProvided=").append(mCompleteAlmanacProvided);
builder.append(", satelliteAlmanacs=").append(mGnssSatelliteAlmanacs);
builder.append("]");
return builder.toString();
@@ -181,9 +199,10 @@ public final class GnssAlmanac implements Parcelable {
/** Builder for {@link GnssAlmanac}. */
public static final class Builder {
private long mIssueDateMillis;
- private int mIod;
+ private int mIoda;
private int mWeekNumber;
private int mToaSeconds;
+ private boolean mCompleteAlmanacProvided;
private List<GnssSatelliteAlmanac> mGnssSatelliteAlmanacs;
/** Sets the almanac issue date in milliseconds (UTC). */
@@ -195,8 +214,8 @@ public final class GnssAlmanac implements Parcelable {
/** Sets the almanac issue of data. */
@NonNull
- public Builder setIod(@IntRange(from = 0) int iod) {
- mIod = iod;
+ public Builder setIoda(@IntRange(from = 0) int ioda) {
+ mIoda = ioda;
return this;
}
@@ -222,6 +241,16 @@ public final class GnssAlmanac implements Parcelable {
return this;
}
+ /**
+ * Sets to true if the satelliteAlmanacs contains complete GNSS
+ * constellation indicated by svid, false otherwise.
+ */
+ @NonNull
+ public Builder setCompleteAlmanacProvided(boolean isCompleteAlmanacProvided) {
+ this.mCompleteAlmanacProvided = isCompleteAlmanacProvided;
+ return this;
+ }
+
/** Sets the list of GnssSatelliteAlmanacs. */
@NonNull
public Builder setGnssSatelliteAlmanacs(
@@ -249,7 +278,7 @@ public final class GnssAlmanac implements Parcelable {
* <p>For Galileo, this is defined in Galileo-OS-SIS-ICD-v2.1 section 5.1.10.
*/
public static final class GnssSatelliteAlmanac implements Parcelable {
- /** The PRN number of the GNSS satellite. */
+ /** The PRN or satellite ID number for the GNSS satellite. */
private final int mSvid;
/**
@@ -332,7 +361,7 @@ public final class GnssAlmanac implements Parcelable {
mAf1 = builder.mAf1;
}
- /** Returns the PRN number of the GNSS satellite. */
+ /** Returns the PRN or satellite ID number of the GNSS satellite. */
@IntRange(from = 1)
public int getSvid() {
return mSvid;
@@ -503,7 +532,7 @@ public final class GnssAlmanac implements Parcelable {
private double mAf0;
private double mAf1;
- /** Sets the PRN number of the GNSS satellite. */
+ /** Sets the PRN or satellite ID number of the GNSS satellite. */
@NonNull
public Builder setSvid(@IntRange(from = 1) int svid) {
mSvid = svid;
diff --git a/location/java/android/location/GpsSatelliteEphemeris.java b/location/java/android/location/GpsSatelliteEphemeris.java
index ec6bc59dc69c..0abdc30d2f19 100644
--- a/location/java/android/location/GpsSatelliteEphemeris.java
+++ b/location/java/android/location/GpsSatelliteEphemeris.java
@@ -37,8 +37,8 @@ import com.android.internal.util.Preconditions;
@FlaggedApi(Flags.FLAG_GNSS_ASSISTANCE_INTERFACE)
@SystemApi
public final class GpsSatelliteEphemeris implements Parcelable {
- /** Satellite PRN */
- private final int mPrn;
+ /** PRN or satellite ID number for the GPS satellite. */
+ private final int mSvid;
/** L2 parameters. */
@NonNull private final GpsL2Params mGpsL2Params;
@@ -56,8 +56,8 @@ public final class GpsSatelliteEphemeris implements Parcelable {
@NonNull private final SatelliteEphemerisTime mSatelliteEphemerisTime;
private GpsSatelliteEphemeris(Builder builder) {
- // Allow PRN beyond the range to support potential future extensibility.
- Preconditions.checkArgument(builder.mPrn >= 1);
+ // Allow svid beyond the range to support potential future extensibility.
+ Preconditions.checkArgument(builder.mSvid >= 1);
Preconditions.checkNotNull(builder.mGpsL2Params, "GPSL2Params cannot be null");
Preconditions.checkNotNull(builder.mSatelliteClockModel,
"SatelliteClockModel cannot be null");
@@ -67,7 +67,7 @@ public final class GpsSatelliteEphemeris implements Parcelable {
"SatelliteHealth cannot be null");
Preconditions.checkNotNull(builder.mSatelliteEphemerisTime,
"SatelliteEphemerisTime cannot be null");
- mPrn = builder.mPrn;
+ mSvid = builder.mSvid;
mGpsL2Params = builder.mGpsL2Params;
mSatelliteClockModel = builder.mSatelliteClockModel;
mSatelliteOrbitModel = builder.mSatelliteOrbitModel;
@@ -75,10 +75,10 @@ public final class GpsSatelliteEphemeris implements Parcelable {
mSatelliteEphemerisTime = builder.mSatelliteEphemerisTime;
}
- /** Returns the PRN of the satellite. */
+ /** Returns the svid of the satellite. */
@IntRange(from = 1, to = 32)
- public int getPrn() {
- return mPrn;
+ public int getSvid() {
+ return mSvid;
}
/** Returns the L2 parameters of the satellite. */
@@ -118,7 +118,7 @@ public final class GpsSatelliteEphemeris implements Parcelable {
public GpsSatelliteEphemeris createFromParcel(Parcel in) {
final GpsSatelliteEphemeris.Builder gpsSatelliteEphemeris =
new Builder()
- .setPrn(in.readInt())
+ .setSvid(in.readInt())
.setGpsL2Params(in.readTypedObject(GpsL2Params.CREATOR))
.setSatelliteClockModel(
in.readTypedObject(GpsSatelliteClockModel.CREATOR))
@@ -144,7 +144,7 @@ public final class GpsSatelliteEphemeris implements Parcelable {
@Override
public void writeToParcel(@NonNull Parcel parcel, int flags) {
- parcel.writeInt(mPrn);
+ parcel.writeInt(mSvid);
parcel.writeTypedObject(mGpsL2Params, flags);
parcel.writeTypedObject(mSatelliteClockModel, flags);
parcel.writeTypedObject(mSatelliteOrbitModel, flags);
@@ -156,7 +156,7 @@ public final class GpsSatelliteEphemeris implements Parcelable {
@NonNull
public String toString() {
StringBuilder builder = new StringBuilder("GpsSatelliteEphemeris[");
- builder.append("prn = ").append(mPrn);
+ builder.append("Svid = ").append(mSvid);
builder.append(", gpsL2Params = ").append(mGpsL2Params);
builder.append(", satelliteClockModel = ").append(mSatelliteClockModel);
builder.append(", satelliteOrbitModel = ").append(mSatelliteOrbitModel);
@@ -168,17 +168,17 @@ public final class GpsSatelliteEphemeris implements Parcelable {
/** Builder for {@link GpsSatelliteEphemeris} */
public static final class Builder {
- private int mPrn = 0;
+ private int mSvid = 0;
private GpsL2Params mGpsL2Params;
private GpsSatelliteClockModel mSatelliteClockModel;
private KeplerianOrbitModel mSatelliteOrbitModel;
private GpsSatelliteHealth mSatelliteHealth;
private SatelliteEphemerisTime mSatelliteEphemerisTime;
- /** Sets the PRN of the satellite. */
+ /** Sets the PRN or satellite ID number for the GPS satellite.. */
@NonNull
- public Builder setPrn(@IntRange(from = 1, to = 32) int prn) {
- mPrn = prn;
+ public Builder setSvid(@IntRange(from = 1, to = 32) int svid) {
+ mSvid = svid;
return this;
}
diff --git a/location/java/android/location/QzssSatelliteEphemeris.java b/location/java/android/location/QzssSatelliteEphemeris.java
index 96203d9588c8..dd9f408f53be 100644
--- a/location/java/android/location/QzssSatelliteEphemeris.java
+++ b/location/java/android/location/QzssSatelliteEphemeris.java
@@ -39,8 +39,8 @@ import com.android.internal.util.Preconditions;
@FlaggedApi(Flags.FLAG_GNSS_ASSISTANCE_INTERFACE)
@SystemApi
public final class QzssSatelliteEphemeris implements Parcelable {
- /** Satellite PRN. */
- private final int mPrn;
+ /** PRN or satellite ID number for the Qzss satellite. */
+ private final int mSvid;
/** L2 parameters. */
@NonNull private final GpsL2Params mGpsL2Params;
@@ -57,10 +57,10 @@ public final class QzssSatelliteEphemeris implements Parcelable {
/** Ephemeris time. */
@NonNull private final SatelliteEphemerisTime mSatelliteEphemerisTime;
- /** Returns the PRN of the satellite. */
+ /** Returns the PRN or satellite ID number for the Qzss satellite. */
@IntRange(from = 183, to = 206)
- public int getPrn() {
- return mPrn;
+ public int getSvid() {
+ return mSvid;
}
/** Returns the L2 parameters of the satellite. */
@@ -95,7 +95,7 @@ public final class QzssSatelliteEphemeris implements Parcelable {
@Override
public void writeToParcel(@NonNull Parcel parcel, int flags) {
- parcel.writeInt(mPrn);
+ parcel.writeInt(mSvid);
parcel.writeTypedObject(mGpsL2Params, flags);
parcel.writeTypedObject(mSatelliteClockModel, flags);
parcel.writeTypedObject(mSatelliteOrbitModel, flags);
@@ -104,8 +104,8 @@ public final class QzssSatelliteEphemeris implements Parcelable {
}
private QzssSatelliteEphemeris(Builder builder) {
- // Allow PRN beyond the range to support potential future extensibility.
- Preconditions.checkArgument(builder.mPrn >= 1);
+ // Allow Svid beyond the range to support potential future extensibility.
+ Preconditions.checkArgument(builder.mSvid >= 1);
Preconditions.checkNotNull(builder.mGpsL2Params, "GpsL2Params cannot be null");
Preconditions.checkNotNull(builder.mSatelliteClockModel,
"SatelliteClockModel cannot be null");
@@ -115,7 +115,7 @@ public final class QzssSatelliteEphemeris implements Parcelable {
"SatelliteHealth cannot be null");
Preconditions.checkNotNull(builder.mSatelliteEphemerisTime,
"SatelliteEphemerisTime cannot be null");
- mPrn = builder.mPrn;
+ mSvid = builder.mSvid;
mGpsL2Params = builder.mGpsL2Params;
mSatelliteClockModel = builder.mSatelliteClockModel;
mSatelliteOrbitModel = builder.mSatelliteOrbitModel;
@@ -130,7 +130,7 @@ public final class QzssSatelliteEphemeris implements Parcelable {
public QzssSatelliteEphemeris createFromParcel(Parcel in) {
final QzssSatelliteEphemeris.Builder qzssSatelliteEphemeris =
new Builder()
- .setPrn(in.readInt())
+ .setSvid(in.readInt())
.setGpsL2Params(in.readTypedObject(GpsL2Params.CREATOR))
.setSatelliteClockModel(
in.readTypedObject(GpsSatelliteClockModel.CREATOR))
@@ -158,7 +158,7 @@ public final class QzssSatelliteEphemeris implements Parcelable {
@NonNull
public String toString() {
StringBuilder builder = new StringBuilder("QzssSatelliteEphemeris[");
- builder.append("prn=").append(mPrn);
+ builder.append("Svid=").append(mSvid);
builder.append(", gpsL2Params=").append(mGpsL2Params);
builder.append(", satelliteClockModel=").append(mSatelliteClockModel);
builder.append(", satelliteOrbitModel=").append(mSatelliteOrbitModel);
@@ -170,17 +170,17 @@ public final class QzssSatelliteEphemeris implements Parcelable {
/** Builder for {@link QzssSatelliteEphemeris}. */
public static final class Builder {
- private int mPrn;
+ private int mSvid;
private GpsL2Params mGpsL2Params;
private GpsSatelliteClockModel mSatelliteClockModel;
private KeplerianOrbitModel mSatelliteOrbitModel;
private GpsSatelliteHealth mSatelliteHealth;
private SatelliteEphemerisTime mSatelliteEphemerisTime;
- /** Sets the PRN of the satellite. */
+ /** Sets the PRN or satellite ID number for the Qzss satellite. */
@NonNull
- public Builder setPrn(@IntRange(from = 183, to = 206) int prn) {
- mPrn = prn;
+ public Builder setSvid(@IntRange(from = 183, to = 206) int svid) {
+ mSvid = svid;
return this;
}