// Signature format: 2.0
package android.location {

  @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class AuxiliaryInformation implements android.os.Parcelable {
    method public int describeContents();
    method @NonNull public java.util.List<android.location.GnssSignalType> getAvailableSignalTypes();
    method @IntRange(from=0xfffffff9, to=6) public int getFrequencyChannelNumber();
    method public int getSatType();
    method @IntRange(from=1) public int getSvid();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field public static final int BDS_B1C_ORBIT_TYPE_GEO = 1; // 0x1
    field public static final int BDS_B1C_ORBIT_TYPE_IGSO = 2; // 0x2
    field public static final int BDS_B1C_ORBIT_TYPE_MEO = 3; // 0x3
    field public static final int BDS_B1C_ORBIT_TYPE_UNDEFINED = 0; // 0x0
    field @NonNull public static final android.os.Parcelable.Creator<android.location.AuxiliaryInformation> CREATOR;
  }

  public static final class AuxiliaryInformation.Builder {
    ctor public AuxiliaryInformation.Builder();
    method @NonNull public android.location.AuxiliaryInformation build();
    method @NonNull public android.location.AuxiliaryInformation.Builder setAvailableSignalTypes(@NonNull java.util.List<android.location.GnssSignalType>);
    method @NonNull public android.location.AuxiliaryInformation.Builder setFrequencyChannelNumber(@IntRange(from=0xfffffff9, to=6) int);
    method @NonNull public android.location.AuxiliaryInformation.Builder setSatType(int);
    method @NonNull public android.location.AuxiliaryInformation.Builder setSvid(@IntRange(from=1) int);
  }

  public abstract class BatchedLocationCallback {
    ctor public BatchedLocationCallback();
    method public void onLocationBatch(java.util.List<android.location.Location>);
  }

  @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class BeidouAssistance implements android.os.Parcelable {
    method public int describeContents();
    method @Nullable public android.location.GnssAlmanac getAlmanac();
    method @NonNull public java.util.List<android.location.AuxiliaryInformation> getAuxiliaryInformation();
    method @Nullable public android.location.KlobucharIonosphericModel getIonosphericModel();
    method @Nullable public android.location.LeapSecondsModel getLeapSecondsModel();
    method @NonNull public java.util.List<android.location.RealTimeIntegrityModel> getRealTimeIntegrityModels();
    method @NonNull public java.util.List<android.location.GnssAssistance.GnssSatelliteCorrections> getSatelliteCorrections();
    method @NonNull public java.util.List<android.location.BeidouSatelliteEphemeris> getSatelliteEphemeris();
    method @NonNull public java.util.List<android.location.TimeModel> getTimeModels();
    method @Nullable public android.location.UtcModel getUtcModel();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.BeidouAssistance> CREATOR;
  }

  public static final class BeidouAssistance.Builder {
    ctor public BeidouAssistance.Builder();
    method @NonNull public android.location.BeidouAssistance build();
    method @NonNull public android.location.BeidouAssistance.Builder setAlmanac(@Nullable android.location.GnssAlmanac);
    method @NonNull public android.location.BeidouAssistance.Builder setAuxiliaryInformation(@NonNull java.util.List<android.location.AuxiliaryInformation>);
    method @NonNull public android.location.BeidouAssistance.Builder setIonosphericModel(@Nullable android.location.KlobucharIonosphericModel);
    method @NonNull public android.location.BeidouAssistance.Builder setLeapSecondsModel(@Nullable android.location.LeapSecondsModel);
    method @NonNull public android.location.BeidouAssistance.Builder setRealTimeIntegrityModels(@NonNull java.util.List<android.location.RealTimeIntegrityModel>);
    method @NonNull public android.location.BeidouAssistance.Builder setSatelliteCorrections(@NonNull java.util.List<android.location.GnssAssistance.GnssSatelliteCorrections>);
    method @NonNull public android.location.BeidouAssistance.Builder setSatelliteEphemeris(@NonNull java.util.List<android.location.BeidouSatelliteEphemeris>);
    method @NonNull public android.location.BeidouAssistance.Builder setTimeModels(@NonNull java.util.List<android.location.TimeModel>);
    method @NonNull public android.location.BeidouAssistance.Builder setUtcModel(@Nullable android.location.UtcModel);
  }

  @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class BeidouSatelliteEphemeris implements android.os.Parcelable {
    method public int describeContents();
    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;
  }

  public static final class BeidouSatelliteEphemeris.BeidouSatelliteClockModel implements android.os.Parcelable {
    method public int describeContents();
    method @FloatRange(from=-0.00977F, to=0.00977f) public double getAf0();
    method @FloatRange(from=-1.87E-9F, to=1.87E-9f) public double getAf1();
    method @FloatRange(from=-1.39E-17F, to=1.39E-17f) public double getAf2();
    method @IntRange(from=0, to=31) public int getAodc();
    method @FloatRange(from=-5.12E-8F, to=5.12E-8f) public double getTgd1();
    method @FloatRange(from=-5.12E-8F, to=5.12E-8f) public double getTgd2();
    method @IntRange(from=0) public long getTimeOfClockSeconds();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.BeidouSatelliteEphemeris.BeidouSatelliteClockModel> CREATOR;
  }

  public static final class BeidouSatelliteEphemeris.BeidouSatelliteClockModel.Builder {
    ctor public BeidouSatelliteEphemeris.BeidouSatelliteClockModel.Builder();
    method @NonNull public android.location.BeidouSatelliteEphemeris.BeidouSatelliteClockModel build();
    method @NonNull public android.location.BeidouSatelliteEphemeris.BeidouSatelliteClockModel.Builder setAf0(@FloatRange(from=-0.00977F, to=0.00977f) double);
    method @NonNull public android.location.BeidouSatelliteEphemeris.BeidouSatelliteClockModel.Builder setAf1(@FloatRange(from=-1.87E-9F, to=1.87E-9f) double);
    method @NonNull public android.location.BeidouSatelliteEphemeris.BeidouSatelliteClockModel.Builder setAf2(@FloatRange(from=-1.39E-17F, to=1.39E-17f) double);
    method @NonNull public android.location.BeidouSatelliteEphemeris.BeidouSatelliteClockModel.Builder setAodc(@IntRange(from=0, to=31) int);
    method @NonNull public android.location.BeidouSatelliteEphemeris.BeidouSatelliteClockModel.Builder setTgd1(@FloatRange(from=-5.12E-8F, to=5.12E-8f) double);
    method @NonNull public android.location.BeidouSatelliteEphemeris.BeidouSatelliteClockModel.Builder setTgd2(@FloatRange(from=-5.12E-8F, to=5.12E-8f) double);
    method @NonNull public android.location.BeidouSatelliteEphemeris.BeidouSatelliteClockModel.Builder setTimeOfClockSeconds(@IntRange(from=0) long);
  }

  public static final class BeidouSatelliteEphemeris.BeidouSatelliteEphemerisTime implements android.os.Parcelable {
    method public int describeContents();
    method @IntRange(from=0, to=31) public int getAode();
    method @IntRange(from=0) public int getBeidouWeekNumber();
    method @IntRange(from=0, to=604792) public int getToeSeconds();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.BeidouSatelliteEphemeris.BeidouSatelliteEphemerisTime> CREATOR;
  }

  public static final class BeidouSatelliteEphemeris.BeidouSatelliteEphemerisTime.Builder {
    ctor public BeidouSatelliteEphemeris.BeidouSatelliteEphemerisTime.Builder();
    method @NonNull public android.location.BeidouSatelliteEphemeris.BeidouSatelliteEphemerisTime build();
    method @NonNull public android.location.BeidouSatelliteEphemeris.BeidouSatelliteEphemerisTime.Builder setAode(int);
    method @NonNull public android.location.BeidouSatelliteEphemeris.BeidouSatelliteEphemerisTime.Builder setBeidouWeekNumber(@IntRange(from=0) int);
    method @NonNull public android.location.BeidouSatelliteEphemeris.BeidouSatelliteEphemerisTime.Builder setToeSeconds(@IntRange(from=0, to=604792) int);
  }

  public static final class BeidouSatelliteEphemeris.BeidouSatelliteHealth implements android.os.Parcelable {
    method public int describeContents();
    method @IntRange(from=0, to=1) public int getSatH1();
    method @FloatRange(from=0.0f, to=8192.0f) public double getSvAccur();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.BeidouSatelliteEphemeris.BeidouSatelliteHealth> CREATOR;
  }

  public static final class BeidouSatelliteEphemeris.BeidouSatelliteHealth.Builder {
    ctor public BeidouSatelliteEphemeris.BeidouSatelliteHealth.Builder();
    method @NonNull public android.location.BeidouSatelliteEphemeris.BeidouSatelliteHealth build();
    method @NonNull public android.location.BeidouSatelliteEphemeris.BeidouSatelliteHealth.Builder setSatH1(int);
    method @NonNull public android.location.BeidouSatelliteEphemeris.BeidouSatelliteHealth.Builder setSvAccur(double);
  }

  public static final class BeidouSatelliteEphemeris.Builder {
    ctor public BeidouSatelliteEphemeris.Builder();
    method @NonNull public android.location.BeidouSatelliteEphemeris build();
    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 {
    method public int describeContents();
    method @FloatRange(from=0.0f) public double getFrequencyOffsetMetersPerSecond();
    method @NonNull public int[] getMagnitude();
    method @FloatRange(from=0.0f) public double getSamplingStartMeters();
    method @FloatRange(from=0.0f, fromInclusive=false) public double getSamplingWidthMeters();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.CorrelationVector> CREATOR;
  }

  public static final class CorrelationVector.Builder {
    ctor public CorrelationVector.Builder();
    method @NonNull public android.location.CorrelationVector build();
    method @NonNull public android.location.CorrelationVector.Builder setFrequencyOffsetMetersPerSecond(@FloatRange(from=0.0f) double);
    method @NonNull public android.location.CorrelationVector.Builder setMagnitude(@NonNull int[]);
    method @NonNull public android.location.CorrelationVector.Builder setSamplingStartMeters(@FloatRange(from=0.0f) double);
    method @NonNull public android.location.CorrelationVector.Builder setSamplingWidthMeters(@FloatRange(from=0.0f, fromInclusive=false) double);
  }

  public final class Country implements android.os.Parcelable {
    ctor public Country(@NonNull String, int);
    method public int describeContents();
    method @NonNull public String getCountryCode();
    method public int getSource();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field public static final int COUNTRY_SOURCE_LOCALE = 3; // 0x3
    field public static final int COUNTRY_SOURCE_LOCATION = 1; // 0x1
    field public static final int COUNTRY_SOURCE_NETWORK = 0; // 0x0
    field public static final int COUNTRY_SOURCE_SIM = 2; // 0x2
    field @NonNull public static final android.os.Parcelable.Creator<android.location.Country> CREATOR;
  }

  public class CountryDetector {
    method public void registerCountryDetectorCallback(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.location.Country>);
    method public void unregisterCountryDetectorCallback(@NonNull java.util.function.Consumer<android.location.Country>);
  }

  @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class GalileoAssistance implements android.os.Parcelable {
    method public int describeContents();
    method @Nullable public android.location.GnssAlmanac getAlmanac();
    method @NonNull public java.util.List<android.location.AuxiliaryInformation> getAuxiliaryInformation();
    method @Nullable public android.location.GalileoIonosphericModel getIonosphericModel();
    method @Nullable public android.location.LeapSecondsModel getLeapSecondsModel();
    method @NonNull public java.util.List<android.location.RealTimeIntegrityModel> getRealTimeIntegrityModels();
    method @NonNull public java.util.List<android.location.GnssAssistance.GnssSatelliteCorrections> getSatelliteCorrections();
    method @NonNull public java.util.List<android.location.GalileoSatelliteEphemeris> getSatelliteEphemeris();
    method @NonNull public java.util.List<android.location.TimeModel> getTimeModels();
    method @Nullable public android.location.UtcModel getUtcModel();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.GalileoAssistance> CREATOR;
  }

  public static final class GalileoAssistance.Builder {
    ctor public GalileoAssistance.Builder();
    method @NonNull public android.location.GalileoAssistance build();
    method @NonNull public android.location.GalileoAssistance.Builder setAlmanac(@Nullable android.location.GnssAlmanac);
    method @NonNull public android.location.GalileoAssistance.Builder setAuxiliaryInformation(@NonNull java.util.List<android.location.AuxiliaryInformation>);
    method @NonNull public android.location.GalileoAssistance.Builder setIonosphericModel(@Nullable android.location.GalileoIonosphericModel);
    method @NonNull public android.location.GalileoAssistance.Builder setLeapSecondsModel(@Nullable android.location.LeapSecondsModel);
    method @NonNull public android.location.GalileoAssistance.Builder setRealTimeIntegrityModels(@NonNull java.util.List<android.location.RealTimeIntegrityModel>);
    method @NonNull public android.location.GalileoAssistance.Builder setSatelliteCorrections(@NonNull java.util.List<android.location.GnssAssistance.GnssSatelliteCorrections>);
    method @NonNull public android.location.GalileoAssistance.Builder setSatelliteEphemeris(@NonNull java.util.List<android.location.GalileoSatelliteEphemeris>);
    method @NonNull public android.location.GalileoAssistance.Builder setTimeModels(@NonNull java.util.List<android.location.TimeModel>);
    method @NonNull public android.location.GalileoAssistance.Builder setUtcModel(@Nullable android.location.UtcModel);
  }

  @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class GalileoIonosphericModel implements android.os.Parcelable {
    method public int describeContents();
    method @FloatRange(from=0.0f, to=512.0f) public double getAi0();
    method @FloatRange(from=-4.0F, to=4.0f) public double getAi1();
    method @FloatRange(from=-0.5F, to=0.5f) public double getAi2();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.GalileoIonosphericModel> CREATOR;
  }

  public static final class GalileoIonosphericModel.Builder {
    ctor public GalileoIonosphericModel.Builder();
    method @NonNull public android.location.GalileoIonosphericModel build();
    method @NonNull public android.location.GalileoIonosphericModel.Builder setAi0(@FloatRange(from=0.0f, to=512.0f) double);
    method @NonNull public android.location.GalileoIonosphericModel.Builder setAi1(@FloatRange(from=-4.0F, to=4.0f) double);
    method @NonNull public android.location.GalileoIonosphericModel.Builder setAi2(@FloatRange(from=-0.5F, to=0.5f) double);
  }

  @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 @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;
  }

  public static final class GalileoSatelliteEphemeris.Builder {
    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 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 {
    method public int describeContents();
    method @FloatRange(from=-0.0625F, to=0.0625f) public double getAf0();
    method @FloatRange(from=-1.5E-8F, to=1.5E-8f) public double getAf1();
    method @FloatRange(from=-5.56E-17F, to=5.56E-17f) public double getAf2();
    method @FloatRange(from=-1.2E-7F, to=1.2E-7f) public double getBgdSeconds();
    method public int getSatelliteClockType();
    method @FloatRange(from=0.0f) public double getSisaMeters();
    method @IntRange(from=0) public long getTimeOfClockSeconds();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.GalileoSatelliteEphemeris.GalileoSatelliteClockModel> CREATOR;
    field public static final int TYPE_FNAV = 1; // 0x1
    field public static final int TYPE_INAV = 2; // 0x2
    field public static final int TYPE_UNDEFINED = 0; // 0x0
  }

  public static final class GalileoSatelliteEphemeris.GalileoSatelliteClockModel.Builder {
    ctor public GalileoSatelliteEphemeris.GalileoSatelliteClockModel.Builder();
    method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSatelliteClockModel build();
    method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSatelliteClockModel.Builder setAf0(@FloatRange(from=-0.0625F, to=0.0625f) double);
    method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSatelliteClockModel.Builder setAf1(@FloatRange(from=-1.5E-8F, to=1.5E-8f) double);
    method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSatelliteClockModel.Builder setAf2(@FloatRange(from=-5.56E-17F, to=5.56E-17f) double);
    method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSatelliteClockModel.Builder setBgdSeconds(@FloatRange(from=-1.2E-7F, to=1.2E-7f) double);
    method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSatelliteClockModel.Builder setSatelliteClockType(int);
    method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSatelliteClockModel.Builder setSisaMeters(@FloatRange(from=0.0f) double);
    method @NonNull public android.location.GalileoSatelliteEphemeris.GalileoSatelliteClockModel.Builder setTimeOfClockSeconds(@IntRange(from=0) long);
  }

  public static final class GalileoSatelliteEphemeris.GalileoSvHealth implements android.os.Parcelable {
    method public int describeContents();
    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(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 {
    ctor public GlonassAlmanac(@IntRange(from=0) long, @NonNull java.util.List<android.location.GlonassAlmanac.GlonassSatelliteAlmanac>);
    method public int describeContents();
    method @IntRange(from=0) public long getIssueDateMillis();
    method @NonNull public java.util.List<android.location.GlonassAlmanac.GlonassSatelliteAlmanac> getSatelliteAlmanacs();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.GlonassAlmanac> CREATOR;
  }

  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=0xfffffff9, to=6) 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 @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;
  }

  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 setFrequencyChannelNumber(@IntRange(from=0xfffffff9, to=6) 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 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);
  }

  @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class GlonassAssistance implements android.os.Parcelable {
    method public int describeContents();
    method @Nullable public android.location.GlonassAlmanac getAlmanac();
    method @NonNull public java.util.List<android.location.AuxiliaryInformation> getAuxiliaryInformation();
    method @NonNull public java.util.List<android.location.RealTimeIntegrityModel> getRealTimeIntegrityModels();
    method @NonNull public java.util.List<android.location.GnssAssistance.GnssSatelliteCorrections> getSatelliteCorrections();
    method @NonNull public java.util.List<android.location.GlonassSatelliteEphemeris> getSatelliteEphemeris();
    method @NonNull public java.util.List<android.location.TimeModel> getTimeModels();
    method @Nullable public android.location.UtcModel getUtcModel();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.GlonassAssistance> CREATOR;
  }

  public static final class GlonassAssistance.Builder {
    ctor public GlonassAssistance.Builder();
    method @NonNull public android.location.GlonassAssistance build();
    method @NonNull public android.location.GlonassAssistance.Builder setAlmanac(@Nullable android.location.GlonassAlmanac);
    method @NonNull public android.location.GlonassAssistance.Builder setAuxiliaryInformation(@NonNull java.util.List<android.location.AuxiliaryInformation>);
    method @NonNull public android.location.GlonassAssistance.Builder setRealTimeIntegrityModels(@NonNull java.util.List<android.location.RealTimeIntegrityModel>);
    method @NonNull public android.location.GlonassAssistance.Builder setSatelliteCorrections(@NonNull java.util.List<android.location.GnssAssistance.GnssSatelliteCorrections>);
    method @NonNull public android.location.GlonassAssistance.Builder setSatelliteEphemeris(@NonNull java.util.List<android.location.GlonassSatelliteEphemeris>);
    method @NonNull public android.location.GlonassAssistance.Builder setTimeModels(@NonNull java.util.List<android.location.TimeModel>);
    method @NonNull public android.location.GlonassAssistance.Builder setUtcModel(@Nullable android.location.UtcModel);
  }

  @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class GlonassSatelliteEphemeris implements android.os.Parcelable {
    method public int describeContents();
    method @IntRange(from=0, to=31) public int getAgeInDays();
    method @FloatRange(from=0.0f) public double getFrameTimeSeconds();
    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 {
    ctor public GlonassSatelliteEphemeris.Builder();
    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 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 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;
  }

  public static final class GlonassSatelliteEphemeris.GlonassSatelliteClockModel.Builder {
    ctor public GlonassSatelliteEphemeris.GlonassSatelliteClockModel.Builder();
    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 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);
  }

  public static final class GlonassSatelliteEphemeris.GlonassSatelliteOrbitModel implements android.os.Parcelable {
    method public int describeContents();
    method @FloatRange(from=-27000.0F, to=27000.0f) public double getX();
    method @FloatRange(from=-6.2E-9F, to=6.2E-9f) public double getXAccel();
    method @FloatRange(from=-4.3F, to=4.3f) public double getXDot();
    method @FloatRange(from=-27000.0F, to=27000.0f) public double getY();
    method @FloatRange(from=-6.2E-9F, to=6.2E-9f) public double getYAccel();
    method @FloatRange(from=-4.3F, to=4.3f) public double getYDot();
    method @FloatRange(from=-27000.0F, to=27000.0f) public double getZ();
    method @FloatRange(from=-6.2E-9F, to=6.2E-9f) public double getZAccel();
    method @FloatRange(from=-4.3F, to=4.3f) public double getZDot();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.GlonassSatelliteEphemeris.GlonassSatelliteOrbitModel> CREATOR;
  }

  public static final class GlonassSatelliteEphemeris.GlonassSatelliteOrbitModel.Builder {
    ctor public GlonassSatelliteEphemeris.GlonassSatelliteOrbitModel.Builder();
    method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteOrbitModel build();
    method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteOrbitModel.Builder setX(@FloatRange(from=-27000.0F, to=27000.0f) double);
    method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteOrbitModel.Builder setXAccel(@FloatRange(from=-6.2E-9F, to=6.2E-9f) double);
    method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteOrbitModel.Builder setXDot(@FloatRange(from=-4.3F, to=4.3f) double);
    method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteOrbitModel.Builder setY(@FloatRange(from=-27000.0F, to=27000.0f) double);
    method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteOrbitModel.Builder setYAccel(@FloatRange(from=-6.2E-9F, to=6.2E-9f) double);
    method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteOrbitModel.Builder setYDot(@FloatRange(from=-4.3F, to=4.3f) double);
    method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteOrbitModel.Builder setZ(@FloatRange(from=-27000.0F, to=27000.0f) double);
    method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteOrbitModel.Builder setZAccel(@FloatRange(from=-6.2E-9F, to=6.2E-9f) double);
    method @NonNull public android.location.GlonassSatelliteEphemeris.GlonassSatelliteOrbitModel.Builder setZDot(@FloatRange(from=-4.3F, to=4.3f) double);
  }

  @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 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;
  }

  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 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);
  }

  public static final class GnssAlmanac.GnssSatelliteAlmanac implements android.os.Parcelable {
    method public int describeContents();
    method @FloatRange(from=-0.0625F, to=0.0625f) public double getAf0();
    method @FloatRange(from=-1.5E-8F, to=1.5E-8f) public double getAf1();
    method @FloatRange(from=0.0f) public double getEccentricity();
    method @FloatRange(from=-1.0F, to=1.0f) public double getInclination();
    method @FloatRange(from=-1.0F, to=1.0f) public double getM0();
    method @FloatRange(from=-1.0F, to=1.0f) public double getOmega();
    method @FloatRange(from=-1.0F, to=1.0f) public double getOmega0();
    method @FloatRange(from=-1.0F, to=1.0f) public double getOmegaDot();
    method @FloatRange(from=0.0f, to=8192.0f) public double getRootA();
    method @IntRange(from=0) public int getSvHealth();
    method @IntRange(from=1) public int getSvid();
    method @FlaggedApi("android.location.flags.support_toa_in_gnss_satellite_almanac") @IntRange(from=0, to=604800) public int getToaSeconds();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.GnssAlmanac.GnssSatelliteAlmanac> CREATOR;
  }

  public static final class GnssAlmanac.GnssSatelliteAlmanac.Builder {
    ctor public GnssAlmanac.GnssSatelliteAlmanac.Builder();
    method @NonNull public android.location.GnssAlmanac.GnssSatelliteAlmanac build();
    method @NonNull public android.location.GnssAlmanac.GnssSatelliteAlmanac.Builder setAf0(@FloatRange(from=-0.0625F, to=0.0625f) double);
    method @NonNull public android.location.GnssAlmanac.GnssSatelliteAlmanac.Builder setAf1(@FloatRange(from=-1.5E-8F, to=1.5E-8f) double);
    method @NonNull public android.location.GnssAlmanac.GnssSatelliteAlmanac.Builder setEccentricity(@FloatRange(from=0.0f) double);
    method @NonNull public android.location.GnssAlmanac.GnssSatelliteAlmanac.Builder setInclination(@FloatRange(from=-1.0F, to=1.0f) double);
    method @NonNull public android.location.GnssAlmanac.GnssSatelliteAlmanac.Builder setM0(@FloatRange(from=-1.0F, to=1.0f) double);
    method @NonNull public android.location.GnssAlmanac.GnssSatelliteAlmanac.Builder setOmega(@FloatRange(from=-1.0F, to=1.0f) double);
    method @NonNull public android.location.GnssAlmanac.GnssSatelliteAlmanac.Builder setOmega0(@FloatRange(from=-1.0F, to=1.0f) double);
    method @NonNull public android.location.GnssAlmanac.GnssSatelliteAlmanac.Builder setOmegaDot(@FloatRange(from=-1.0F, to=1.0f) double);
    method @NonNull public android.location.GnssAlmanac.GnssSatelliteAlmanac.Builder setRootA(@FloatRange(from=0.0f, to=8192.0f) double);
    method @NonNull public android.location.GnssAlmanac.GnssSatelliteAlmanac.Builder setSvHealth(@IntRange(from=0) int);
    method @NonNull public android.location.GnssAlmanac.GnssSatelliteAlmanac.Builder setSvid(@IntRange(from=1) int);
    method @FlaggedApi("android.location.flags.support_toa_in_gnss_satellite_almanac") @NonNull public android.location.GnssAlmanac.GnssSatelliteAlmanac.Builder setToaSeconds(@IntRange(from=0, to=604800) int);
  }

  @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class GnssAssistance implements android.os.Parcelable {
    method public int describeContents();
    method @Nullable public android.location.BeidouAssistance getBeidouAssistance();
    method @Nullable public android.location.GalileoAssistance getGalileoAssistance();
    method @Nullable public android.location.GlonassAssistance getGlonassAssistance();
    method @Nullable public android.location.GpsAssistance getGpsAssistance();
    method @FlaggedApi("android.location.flags.support_ionex_assistance") @Nullable public android.location.IonexAssistance getIonexAssistance();
    method @Nullable public android.location.QzssAssistance getQzssAssistance();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.GnssAssistance> CREATOR;
  }

  public static final class GnssAssistance.Builder {
    ctor public GnssAssistance.Builder();
    method @NonNull public android.location.GnssAssistance build();
    method @NonNull public android.location.GnssAssistance.Builder setBeidouAssistance(@Nullable android.location.BeidouAssistance);
    method @NonNull public android.location.GnssAssistance.Builder setGalileoAssistance(@Nullable android.location.GalileoAssistance);
    method @NonNull public android.location.GnssAssistance.Builder setGlonassAssistance(@Nullable android.location.GlonassAssistance);
    method @NonNull public android.location.GnssAssistance.Builder setGpsAssistance(@Nullable android.location.GpsAssistance);
    method @FlaggedApi("android.location.flags.support_ionex_assistance") @NonNull public android.location.GnssAssistance.Builder setIonexAssistance(@Nullable android.location.IonexAssistance);
    method @NonNull public android.location.GnssAssistance.Builder setQzssAssistance(@Nullable android.location.QzssAssistance);
  }

  public static final class GnssAssistance.GnssSatelliteCorrections implements android.os.Parcelable {
    ctor public GnssAssistance.GnssSatelliteCorrections(@IntRange(from=1, to=206) int, @NonNull java.util.List<android.location.IonosphericCorrection>);
    method public int describeContents();
    method @NonNull public java.util.List<android.location.IonosphericCorrection> getIonosphericCorrections();
    method @IntRange(from=1, 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.GnssAssistance.GnssSatelliteCorrections> CREATOR;
  }

  public final class GnssCapabilities implements android.os.Parcelable {
    method @Deprecated public boolean hasMeasurementCorrectionsReflectingPane();
    method @Deprecated public boolean hasNavMessages();
    method @Deprecated public boolean hasSatelliteBlacklist();
  }

  @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class GnssCorrectionComponent implements android.os.Parcelable {
    ctor public GnssCorrectionComponent(@NonNull String, @NonNull android.location.GnssCorrectionComponent.GnssInterval, @NonNull android.location.GnssCorrectionComponent.PseudorangeCorrection);
    method public int describeContents();
    method @NonNull public android.location.GnssCorrectionComponent.PseudorangeCorrection getPseudorangeCorrection();
    method @NonNull public String getSourceKey();
    method @NonNull public android.location.GnssCorrectionComponent.GnssInterval getValidityInterval();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.GnssCorrectionComponent> CREATOR;
  }

  public static final class GnssCorrectionComponent.GnssInterval implements android.os.Parcelable {
    ctor public GnssCorrectionComponent.GnssInterval(@IntRange(from=0) long, @IntRange(from=0) long);
    method public int describeContents();
    method @IntRange(from=0) public long getEndMillisSinceGpsEpoch();
    method @IntRange(from=0) public long getStartMillisSinceGpsEpoch();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.GnssCorrectionComponent.GnssInterval> CREATOR;
  }

  public static final class GnssCorrectionComponent.PseudorangeCorrection implements android.os.Parcelable {
    ctor public GnssCorrectionComponent.PseudorangeCorrection(double, double, double);
    method public int describeContents();
    method public double getCorrectionMeters();
    method public double getCorrectionRateMetersPerSecond();
    method @FloatRange(from=0.0f) public double getCorrectionUncertaintyMeters();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.GnssCorrectionComponent.PseudorangeCorrection> CREATOR;
  }

  public final class GnssExcessPathInfo implements android.os.Parcelable {
    method public int describeContents();
    method @FloatRange(from=0.0f) public float getAttenuationDb();
    method @FloatRange(from=0.0f) public float getExcessPathLengthMeters();
    method @FloatRange(from=0.0f) public float getExcessPathLengthUncertaintyMeters();
    method @NonNull public android.location.GnssReflectingPlane getReflectingPlane();
    method public boolean hasAttenuation();
    method public boolean hasExcessPathLength();
    method public boolean hasExcessPathLengthUncertainty();
    method public boolean hasReflectingPlane();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.GnssExcessPathInfo> CREATOR;
  }

  public static final class GnssExcessPathInfo.Builder {
    ctor public GnssExcessPathInfo.Builder();
    method @NonNull public android.location.GnssExcessPathInfo build();
    method @NonNull public android.location.GnssExcessPathInfo.Builder clearAttenuationDb();
    method @NonNull public android.location.GnssExcessPathInfo.Builder clearExcessPathLengthMeters();
    method @NonNull public android.location.GnssExcessPathInfo.Builder clearExcessPathLengthUncertaintyMeters();
    method @NonNull public android.location.GnssExcessPathInfo.Builder setAttenuationDb(@FloatRange(from=0.0f) float);
    method @NonNull public android.location.GnssExcessPathInfo.Builder setExcessPathLengthMeters(@FloatRange(from=0.0f) float);
    method @NonNull public android.location.GnssExcessPathInfo.Builder setExcessPathLengthUncertaintyMeters(@FloatRange(from=0.0f) float);
    method @NonNull public android.location.GnssExcessPathInfo.Builder setReflectingPlane(@Nullable android.location.GnssReflectingPlane);
  }

  public final class GnssMeasurement implements android.os.Parcelable {
    method @Nullable public java.util.Collection<android.location.CorrelationVector> getCorrelationVectors();
    method @Nullable public android.location.SatellitePvt getSatellitePvt();
    method public boolean hasCorrelationVectors();
    method public boolean hasSatellitePvt();
  }

  public final class GnssMeasurementCorrections implements android.os.Parcelable {
    method public int describeContents();
    method @FloatRange(from=-1000.0F, to=10000.0f) public double getAltitudeMeters();
    method @FloatRange(from=0.0f, to=360.0f) public float getEnvironmentBearingDegrees();
    method @FloatRange(from=0.0f, to=180.0f) public float getEnvironmentBearingUncertaintyDegrees();
    method @FloatRange(from=0.0f) public double getHorizontalPositionUncertaintyMeters();
    method @FloatRange(from=-90.0F, to=90.0f) public double getLatitudeDegrees();
    method @FloatRange(from=-180.0F, to=180.0f) public double getLongitudeDegrees();
    method @NonNull public java.util.List<android.location.GnssSingleSatCorrection> getSingleSatelliteCorrectionList();
    method @IntRange(from=0) public long getToaGpsNanosecondsOfWeek();
    method @FloatRange(from=0.0f) public double getVerticalPositionUncertaintyMeters();
    method public boolean hasEnvironmentBearing();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.location.GnssMeasurementCorrections> CREATOR;
  }

  public static final class GnssMeasurementCorrections.Builder {
    ctor public GnssMeasurementCorrections.Builder();
    method @NonNull public android.location.GnssMeasurementCorrections build();
    method @NonNull public android.location.GnssMeasurementCorrections.Builder setAltitudeMeters(@FloatRange(from=-1000.0F, to=10000.0f) double);
    method @NonNull public android.location.GnssMeasurementCorrections.Builder setEnvironmentBearingDegrees(@FloatRange(from=0.0f, to=360.0f) float);
    method @NonNull public android.location.GnssMeasurementCorrections.Builder setEnvironmentBearingUncertaintyDegrees(@FloatRange(from=0.0f, to=180.0f) float);
    method @NonNull public android.location.GnssMeasurementCorrections.Builder setHorizontalPositionUncertaintyMeters(@FloatRange(from=0.0f) double);
    method @NonNull public android.location.GnssMeasurementCorrections.Builder setLatitudeDegrees(@FloatRange(from=-90.0F, to=90.0f) double);
    method @NonNull public android.location.GnssMeasurementCorrections.Builder setLongitudeDegrees(@FloatRange(from=-180.0F, to=180.0f) double);
    method @NonNull public android.location.GnssMeasurementCorrections.Builder setSingleSatelliteCorrectionList(@NonNull java.util.List<android.location.GnssSingleSatCorrection>);
    method @NonNull public android.location.GnssMeasurementCorrections.Builder setToaGpsNanosecondsOfWeek(@IntRange(from=0) long);
    method @NonNull public android.location.GnssMeasurementCorrections.Builder setVerticalPositionUncertaintyMeters(@FloatRange(from=0.0f) double);
  }

  public final class GnssMeasurementRequest implements android.os.Parcelable {
    method @FlaggedApi("android.location.flags.gnss_api_measurement_request_work_source") @NonNull public android.os.WorkSource getWorkSource();
    method public boolean isCorrelationVectorOutputsEnabled();
  }

  public static final class GnssMeasurementRequest.Builder {
    method @NonNull public android.location.GnssMeasurementRequest.Builder setCorrelationVectorOutputsEnabled(boolean);
    method @FlaggedApi("android.location.flags.gnss_api_measurement_request_work_source") @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public android.location.GnssMeasurementRequest.Builder setWorkSource(@Nullable android.os.WorkSource);
  }

  public final class GnssReflectingPlane implements android.os.Parcelable {
    method public int describeContents();
    method @FloatRange(from=-1000.0F, to=10000.0f) public double getAltitudeMeters();
    method @FloatRange(from=0.0f, to=360.0f) public double getAzimuthDegrees();
    method @FloatRange(from=-90.0F, to=90.0f) public double getLatitudeDegrees();
    method @FloatRange(from=-180.0F, to=180.0f) public double getLongitudeDegrees();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.location.GnssReflectingPlane> CREATOR;
  }

  public static final class GnssReflectingPlane.Builder {
    ctor public GnssReflectingPlane.Builder();
    method @NonNull public android.location.GnssReflectingPlane build();
    method @NonNull public android.location.GnssReflectingPlane.Builder setAltitudeMeters(@FloatRange(from=-1000.0F, to=10000.0f) double);
    method @NonNull public android.location.GnssReflectingPlane.Builder setAzimuthDegrees(@FloatRange(from=0.0f, to=360.0f) double);
    method @NonNull public android.location.GnssReflectingPlane.Builder setLatitudeDegrees(@FloatRange(from=-90.0F, to=90.0f) double);
    method @NonNull public android.location.GnssReflectingPlane.Builder setLongitudeDegrees(@FloatRange(from=-180.0F, to=180.0f) double);
  }

  public final class GnssRequest implements android.os.Parcelable {
    method public int describeContents();
    method public boolean isFullTracking();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.GnssRequest> CREATOR;
  }

  public static final class GnssRequest.Builder {
    ctor public GnssRequest.Builder();
    ctor public GnssRequest.Builder(@NonNull android.location.GnssRequest);
    method @NonNull public android.location.GnssRequest build();
    method @NonNull public android.location.GnssRequest.Builder setFullTracking(boolean);
  }

  public final class GnssSingleSatCorrection implements android.os.Parcelable {
    method public int describeContents();
    method @FloatRange(from=0.0f, fromInclusive=false) public float getCarrierFrequencyHz();
    method @FloatRange(from=0.0f) public float getCombinedAttenuationDb();
    method public int getConstellationType();
    method @FloatRange(from=0.0f) public float getExcessPathLengthMeters();
    method @FloatRange(from=0.0f) public float getExcessPathLengthUncertaintyMeters();
    method @NonNull public java.util.List<android.location.GnssExcessPathInfo> getGnssExcessPathInfoList();
    method @FloatRange(from=0.0f, to=1.0f) public float getProbabilityLineOfSight();
    method @Deprecated @Nullable public android.location.GnssReflectingPlane getReflectingPlane();
    method @IntRange(from=0) public int getSatelliteId();
    method public boolean hasCombinedAttenuation();
    method public boolean hasExcessPathLength();
    method public boolean hasExcessPathLengthUncertainty();
    method @Deprecated public boolean hasReflectingPlane();
    method public boolean hasValidSatelliteLineOfSight();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.location.GnssSingleSatCorrection> CREATOR;
  }

  public static final class GnssSingleSatCorrection.Builder {
    ctor public GnssSingleSatCorrection.Builder();
    method @NonNull public android.location.GnssSingleSatCorrection build();
    method @NonNull public android.location.GnssSingleSatCorrection.Builder clearCombinedAttenuationDb();
    method @NonNull public android.location.GnssSingleSatCorrection.Builder clearExcessPathLengthMeters();
    method @NonNull public android.location.GnssSingleSatCorrection.Builder clearExcessPathLengthUncertaintyMeters();
    method @NonNull public android.location.GnssSingleSatCorrection.Builder clearProbabilityLineOfSight();
    method @NonNull public android.location.GnssSingleSatCorrection.Builder setCarrierFrequencyHz(@FloatRange(from=0.0f, fromInclusive=false) float);
    method @NonNull public android.location.GnssSingleSatCorrection.Builder setCombinedAttenuationDb(@FloatRange(from=0.0f) float);
    method @NonNull public android.location.GnssSingleSatCorrection.Builder setConstellationType(int);
    method @NonNull public android.location.GnssSingleSatCorrection.Builder setExcessPathLengthMeters(@FloatRange(from=0.0f) float);
    method @NonNull public android.location.GnssSingleSatCorrection.Builder setExcessPathLengthUncertaintyMeters(@FloatRange(from=0.0f) float);
    method @NonNull public android.location.GnssSingleSatCorrection.Builder setGnssExcessPathInfoList(@NonNull java.util.List<android.location.GnssExcessPathInfo>);
    method @NonNull public android.location.GnssSingleSatCorrection.Builder setProbabilityLineOfSight(@FloatRange(from=0.0f, to=1.0f) float);
    method @Deprecated @NonNull public android.location.GnssSingleSatCorrection.Builder setReflectingPlane(@Nullable android.location.GnssReflectingPlane);
    method @NonNull public android.location.GnssSingleSatCorrection.Builder setSatelliteId(@IntRange(from=0) int);
  }

  @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class GpsAssistance implements android.os.Parcelable {
    method public int describeContents();
    method @Nullable public android.location.GnssAlmanac getAlmanac();
    method @NonNull public java.util.List<android.location.AuxiliaryInformation> getAuxiliaryInformation();
    method @Nullable public android.location.KlobucharIonosphericModel getIonosphericModel();
    method @Nullable public android.location.LeapSecondsModel getLeapSecondsModel();
    method @NonNull public java.util.List<android.location.RealTimeIntegrityModel> getRealTimeIntegrityModels();
    method @NonNull public java.util.List<android.location.GnssAssistance.GnssSatelliteCorrections> getSatelliteCorrections();
    method @NonNull public java.util.List<android.location.GpsSatelliteEphemeris> getSatelliteEphemeris();
    method @NonNull public java.util.List<android.location.TimeModel> getTimeModels();
    method @Nullable public android.location.UtcModel getUtcModel();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.GpsAssistance> CREATOR;
  }

  public static final class GpsAssistance.Builder {
    ctor public GpsAssistance.Builder();
    method @NonNull public android.location.GpsAssistance build();
    method @NonNull public android.location.GpsAssistance.Builder setAlmanac(@Nullable android.location.GnssAlmanac);
    method @NonNull public android.location.GpsAssistance.Builder setAuxiliaryInformation(@NonNull java.util.List<android.location.AuxiliaryInformation>);
    method @NonNull public android.location.GpsAssistance.Builder setIonosphericModel(@Nullable android.location.KlobucharIonosphericModel);
    method @NonNull public android.location.GpsAssistance.Builder setLeapSecondsModel(@Nullable android.location.LeapSecondsModel);
    method @NonNull public android.location.GpsAssistance.Builder setRealTimeIntegrityModels(@NonNull java.util.List<android.location.RealTimeIntegrityModel>);
    method @NonNull public android.location.GpsAssistance.Builder setSatelliteCorrections(@NonNull java.util.List<android.location.GnssAssistance.GnssSatelliteCorrections>);
    method @NonNull public android.location.GpsAssistance.Builder setSatelliteEphemeris(@NonNull java.util.List<android.location.GpsSatelliteEphemeris>);
    method @NonNull public android.location.GpsAssistance.Builder setTimeModels(@NonNull java.util.List<android.location.TimeModel>);
    method @NonNull public android.location.GpsAssistance.Builder setUtcModel(@Nullable android.location.UtcModel);
  }

  @Deprecated public class GpsClock implements android.os.Parcelable {
    method @Deprecated public int describeContents();
    method @Deprecated public double getBiasInNs();
    method @Deprecated public double getBiasUncertaintyInNs();
    method @Deprecated public double getDriftInNsPerSec();
    method @Deprecated public double getDriftUncertaintyInNsPerSec();
    method @Deprecated public long getFullBiasInNs();
    method @Deprecated public short getLeapSecond();
    method @Deprecated public long getTimeInNs();
    method @Deprecated public double getTimeUncertaintyInNs();
    method @Deprecated public byte getType();
    method @Deprecated public boolean hasBiasInNs();
    method @Deprecated public boolean hasBiasUncertaintyInNs();
    method @Deprecated public boolean hasDriftInNsPerSec();
    method @Deprecated public boolean hasDriftUncertaintyInNsPerSec();
    method @Deprecated public boolean hasFullBiasInNs();
    method @Deprecated public boolean hasLeapSecond();
    method @Deprecated public boolean hasTimeUncertaintyInNs();
    method @Deprecated public void reset();
    method @Deprecated public void resetBiasInNs();
    method @Deprecated public void resetBiasUncertaintyInNs();
    method @Deprecated public void resetDriftInNsPerSec();
    method @Deprecated public void resetDriftUncertaintyInNsPerSec();
    method @Deprecated public void resetFullBiasInNs();
    method @Deprecated public void resetLeapSecond();
    method @Deprecated public void resetTimeUncertaintyInNs();
    method @Deprecated public void set(android.location.GpsClock);
    method @Deprecated public void setBiasInNs(double);
    method @Deprecated public void setBiasUncertaintyInNs(double);
    method @Deprecated public void setDriftInNsPerSec(double);
    method @Deprecated public void setDriftUncertaintyInNsPerSec(double);
    method @Deprecated public void setFullBiasInNs(long);
    method @Deprecated public void setLeapSecond(short);
    method @Deprecated public void setTimeInNs(long);
    method @Deprecated public void setTimeUncertaintyInNs(double);
    method @Deprecated public void setType(byte);
    method @Deprecated public void writeToParcel(android.os.Parcel, int);
    field @Deprecated @NonNull public static final android.os.Parcelable.Creator<android.location.GpsClock> CREATOR;
    field @Deprecated public static final byte TYPE_GPS_TIME = 2; // 0x2
    field @Deprecated public static final byte TYPE_LOCAL_HW_TIME = 1; // 0x1
    field @Deprecated public static final byte TYPE_UNKNOWN = 0; // 0x0
  }

  @Deprecated public class GpsMeasurement implements android.os.Parcelable {
    method @Deprecated public int describeContents();
    method @Deprecated public double getAccumulatedDeltaRangeInMeters();
    method @Deprecated public short getAccumulatedDeltaRangeState();
    method @Deprecated public double getAccumulatedDeltaRangeUncertaintyInMeters();
    method @Deprecated public double getAzimuthInDeg();
    method @Deprecated public double getAzimuthUncertaintyInDeg();
    method @Deprecated public int getBitNumber();
    method @Deprecated public long getCarrierCycles();
    method @Deprecated public float getCarrierFrequencyInHz();
    method @Deprecated public double getCarrierPhase();
    method @Deprecated public double getCarrierPhaseUncertainty();
    method @Deprecated public double getCn0InDbHz();
    method @Deprecated public double getCodePhaseInChips();
    method @Deprecated public double getCodePhaseUncertaintyInChips();
    method @Deprecated public double getDopplerShiftInHz();
    method @Deprecated public double getDopplerShiftUncertaintyInHz();
    method @Deprecated public double getElevationInDeg();
    method @Deprecated public double getElevationUncertaintyInDeg();
    method @Deprecated public byte getLossOfLock();
    method @Deprecated public byte getMultipathIndicator();
    method @Deprecated public byte getPrn();
    method @Deprecated public double getPseudorangeInMeters();
    method @Deprecated public double getPseudorangeRateInMetersPerSec();
    method @Deprecated public double getPseudorangeRateUncertaintyInMetersPerSec();
    method @Deprecated public double getPseudorangeUncertaintyInMeters();
    method @Deprecated public long getReceivedGpsTowInNs();
    method @Deprecated public long getReceivedGpsTowUncertaintyInNs();
    method @Deprecated public double getSnrInDb();
    method @Deprecated public short getState();
    method @Deprecated public short getTimeFromLastBitInMs();
    method @Deprecated public double getTimeOffsetInNs();
    method @Deprecated public boolean hasAzimuthInDeg();
    method @Deprecated public boolean hasAzimuthUncertaintyInDeg();
    method @Deprecated public boolean hasBitNumber();
    method @Deprecated public boolean hasCarrierCycles();
    method @Deprecated public boolean hasCarrierFrequencyInHz();
    method @Deprecated public boolean hasCarrierPhase();
    method @Deprecated public boolean hasCarrierPhaseUncertainty();
    method @Deprecated public boolean hasCodePhaseInChips();
    method @Deprecated public boolean hasCodePhaseUncertaintyInChips();
    method @Deprecated public boolean hasDopplerShiftInHz();
    method @Deprecated public boolean hasDopplerShiftUncertaintyInHz();
    method @Deprecated public boolean hasElevationInDeg();
    method @Deprecated public boolean hasElevationUncertaintyInDeg();
    method @Deprecated public boolean hasPseudorangeInMeters();
    method @Deprecated public boolean hasPseudorangeUncertaintyInMeters();
    method @Deprecated public boolean hasSnrInDb();
    method @Deprecated public boolean hasTimeFromLastBitInMs();
    method @Deprecated public boolean isPseudorangeRateCorrected();
    method @Deprecated public boolean isUsedInFix();
    method @Deprecated public void reset();
    method @Deprecated public void resetAzimuthInDeg();
    method @Deprecated public void resetAzimuthUncertaintyInDeg();
    method @Deprecated public void resetBitNumber();
    method @Deprecated public void resetCarrierCycles();
    method @Deprecated public void resetCarrierFrequencyInHz();
    method @Deprecated public void resetCarrierPhase();
    method @Deprecated public void resetCarrierPhaseUncertainty();
    method @Deprecated public void resetCodePhaseInChips();
    method @Deprecated public void resetCodePhaseUncertaintyInChips();
    method @Deprecated public void resetDopplerShiftInHz();
    method @Deprecated public void resetDopplerShiftUncertaintyInHz();
    method @Deprecated public void resetElevationInDeg();
    method @Deprecated public void resetElevationUncertaintyInDeg();
    method @Deprecated public void resetPseudorangeInMeters();
    method @Deprecated public void resetPseudorangeUncertaintyInMeters();
    method @Deprecated public void resetSnrInDb();
    method @Deprecated public void resetTimeFromLastBitInMs();
    method @Deprecated public void set(android.location.GpsMeasurement);
    method @Deprecated public void setAccumulatedDeltaRangeInMeters(double);
    method @Deprecated public void setAccumulatedDeltaRangeState(short);
    method @Deprecated public void setAccumulatedDeltaRangeUncertaintyInMeters(double);
    method @Deprecated public void setAzimuthInDeg(double);
    method @Deprecated public void setAzimuthUncertaintyInDeg(double);
    method @Deprecated public void setBitNumber(int);
    method @Deprecated public void setCarrierCycles(long);
    method @Deprecated public void setCarrierFrequencyInHz(float);
    method @Deprecated public void setCarrierPhase(double);
    method @Deprecated public void setCarrierPhaseUncertainty(double);
    method @Deprecated public void setCn0InDbHz(double);
    method @Deprecated public void setCodePhaseInChips(double);
    method @Deprecated public void setCodePhaseUncertaintyInChips(double);
    method @Deprecated public void setDopplerShiftInHz(double);
    method @Deprecated public void setDopplerShiftUncertaintyInHz(double);
    method @Deprecated public void setElevationInDeg(double);
    method @Deprecated public void setElevationUncertaintyInDeg(double);
    method @Deprecated public void setLossOfLock(byte);
    method @Deprecated public void setMultipathIndicator(byte);
    method @Deprecated public void setPrn(byte);
    method @Deprecated public void setPseudorangeInMeters(double);
    method @Deprecated public void setPseudorangeRateInMetersPerSec(double);
    method @Deprecated public void setPseudorangeRateUncertaintyInMetersPerSec(double);
    method @Deprecated public void setPseudorangeUncertaintyInMeters(double);
    method @Deprecated public void setReceivedGpsTowInNs(long);
    method @Deprecated public void setReceivedGpsTowUncertaintyInNs(long);
    method @Deprecated public void setSnrInDb(double);
    method @Deprecated public void setState(short);
    method @Deprecated public void setTimeFromLastBitInMs(short);
    method @Deprecated public void setTimeOffsetInNs(double);
    method @Deprecated public void setUsedInFix(boolean);
    method @Deprecated public void writeToParcel(android.os.Parcel, int);
    field @Deprecated public static final short ADR_STATE_CYCLE_SLIP = 4; // 0x4
    field @Deprecated public static final short ADR_STATE_RESET = 2; // 0x2
    field @Deprecated public static final short ADR_STATE_UNKNOWN = 0; // 0x0
    field @Deprecated public static final short ADR_STATE_VALID = 1; // 0x1
    field @Deprecated @NonNull public static final android.os.Parcelable.Creator<android.location.GpsMeasurement> CREATOR;
    field @Deprecated public static final byte LOSS_OF_LOCK_CYCLE_SLIP = 2; // 0x2
    field @Deprecated public static final byte LOSS_OF_LOCK_OK = 1; // 0x1
    field @Deprecated public static final byte LOSS_OF_LOCK_UNKNOWN = 0; // 0x0
    field @Deprecated public static final byte MULTIPATH_INDICATOR_DETECTED = 1; // 0x1
    field @Deprecated public static final byte MULTIPATH_INDICATOR_NOT_USED = 2; // 0x2
    field @Deprecated public static final byte MULTIPATH_INDICATOR_UNKNOWN = 0; // 0x0
    field @Deprecated public static final short STATE_BIT_SYNC = 2; // 0x2
    field @Deprecated public static final short STATE_CODE_LOCK = 1; // 0x1
    field @Deprecated public static final short STATE_MSEC_AMBIGUOUS = 16; // 0x10
    field @Deprecated public static final short STATE_SUBFRAME_SYNC = 4; // 0x4
    field @Deprecated public static final short STATE_TOW_DECODED = 8; // 0x8
    field @Deprecated public static final short STATE_UNKNOWN = 0; // 0x0
  }

  @Deprecated public class GpsMeasurementsEvent implements android.os.Parcelable {
    ctor @Deprecated public GpsMeasurementsEvent(android.location.GpsClock, android.location.GpsMeasurement[]);
    method @Deprecated public int describeContents();
    method @Deprecated @NonNull public android.location.GpsClock getClock();
    method @Deprecated @NonNull public java.util.Collection<android.location.GpsMeasurement> getMeasurements();
    method @Deprecated public void writeToParcel(android.os.Parcel, int);
    field @Deprecated @NonNull public static final android.os.Parcelable.Creator<android.location.GpsMeasurementsEvent> CREATOR;
    field @Deprecated public static final int STATUS_GPS_LOCATION_DISABLED = 2; // 0x2
    field @Deprecated public static final int STATUS_NOT_SUPPORTED = 0; // 0x0
    field @Deprecated public static final int STATUS_READY = 1; // 0x1
  }

  @Deprecated public static interface GpsMeasurementsEvent.Listener {
    method @Deprecated public void onGpsMeasurementsReceived(android.location.GpsMeasurementsEvent);
    method @Deprecated public void onStatusChanged(int);
  }

  @Deprecated public class GpsNavigationMessage implements android.os.Parcelable {
    method @Deprecated public int describeContents();
    method @Deprecated @NonNull public byte[] getData();
    method @Deprecated public short getMessageId();
    method @Deprecated public byte getPrn();
    method @Deprecated public short getStatus();
    method @Deprecated public short getSubmessageId();
    method @Deprecated public byte getType();
    method @Deprecated public void reset();
    method @Deprecated public void set(android.location.GpsNavigationMessage);
    method @Deprecated public void setData(byte[]);
    method @Deprecated public void setMessageId(short);
    method @Deprecated public void setPrn(byte);
    method @Deprecated public void setStatus(short);
    method @Deprecated public void setSubmessageId(short);
    method @Deprecated public void setType(byte);
    method @Deprecated public void writeToParcel(android.os.Parcel, int);
    field @Deprecated @NonNull public static final android.os.Parcelable.Creator<android.location.GpsNavigationMessage> CREATOR;
    field @Deprecated public static final short STATUS_PARITY_PASSED = 1; // 0x1
    field @Deprecated public static final short STATUS_PARITY_REBUILT = 2; // 0x2
    field @Deprecated public static final short STATUS_UNKNOWN = 0; // 0x0
    field @Deprecated public static final byte TYPE_CNAV2 = 4; // 0x4
    field @Deprecated public static final byte TYPE_L1CA = 1; // 0x1
    field @Deprecated public static final byte TYPE_L2CNAV = 2; // 0x2
    field @Deprecated public static final byte TYPE_L5CNAV = 3; // 0x3
    field @Deprecated public static final byte TYPE_UNKNOWN = 0; // 0x0
  }

  @Deprecated public class GpsNavigationMessageEvent implements android.os.Parcelable {
    ctor @Deprecated public GpsNavigationMessageEvent(android.location.GpsNavigationMessage);
    method @Deprecated public int describeContents();
    method @Deprecated @NonNull public android.location.GpsNavigationMessage getNavigationMessage();
    method @Deprecated public void writeToParcel(android.os.Parcel, int);
    field @Deprecated @NonNull public static final android.os.Parcelable.Creator<android.location.GpsNavigationMessageEvent> CREATOR;
    field @Deprecated public static int STATUS_GPS_LOCATION_DISABLED;
    field @Deprecated public static int STATUS_NOT_SUPPORTED;
    field @Deprecated public static int STATUS_READY;
  }

  @Deprecated public static interface GpsNavigationMessageEvent.Listener {
    method @Deprecated public void onGpsNavigationMessageReceived(android.location.GpsNavigationMessageEvent);
    method @Deprecated public void onStatusChanged(int);
  }

  @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 @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;
  }

  public static final class GpsSatelliteEphemeris.Builder {
    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 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 {
    method public int describeContents();
    method @IntRange(from=0, to=3) public int getL2Code();
    method @IntRange(from=0, to=1) public int getL2Flag();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.GpsSatelliteEphemeris.GpsL2Params> CREATOR;
  }

  public static final class GpsSatelliteEphemeris.GpsL2Params.Builder {
    ctor public GpsSatelliteEphemeris.GpsL2Params.Builder();
    method @NonNull public android.location.GpsSatelliteEphemeris.GpsL2Params build();
    method @NonNull public android.location.GpsSatelliteEphemeris.GpsL2Params.Builder setL2Code(@IntRange(from=0, to=3) int);
    method @NonNull public android.location.GpsSatelliteEphemeris.GpsL2Params.Builder setL2Flag(@IntRange(from=0, to=1) int);
  }

  public static final class GpsSatelliteEphemeris.GpsSatelliteClockModel implements android.os.Parcelable {
    method public int describeContents();
    method @FloatRange(from=-0.00977F, to=0.00977f) public double getAf0();
    method @FloatRange(from=-3.73E-9F, to=3.73E-9f) public double getAf1();
    method @FloatRange(from=-3.56E-15F, to=3.56E-15f) public double getAf2();
    method @IntRange(from=0, to=1023) public int getIodc();
    method @FloatRange(from=-5.97E-8F, to=5.97E-8f) public double getTgd();
    method @IntRange(from=0) public long getTimeOfClockSeconds();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.GpsSatelliteEphemeris.GpsSatelliteClockModel> CREATOR;
  }

  public static final class GpsSatelliteEphemeris.GpsSatelliteClockModel.Builder {
    ctor public GpsSatelliteEphemeris.GpsSatelliteClockModel.Builder();
    method @NonNull public android.location.GpsSatelliteEphemeris.GpsSatelliteClockModel build();
    method @NonNull public android.location.GpsSatelliteEphemeris.GpsSatelliteClockModel.Builder setAf0(@FloatRange(from=-0.00977F, to=0.00977f) double);
    method @NonNull public android.location.GpsSatelliteEphemeris.GpsSatelliteClockModel.Builder setAf1(@FloatRange(from=-3.73E-9F, to=3.73E-9f) double);
    method @NonNull public android.location.GpsSatelliteEphemeris.GpsSatelliteClockModel.Builder setAf2(@FloatRange(from=-3.56E-15F, to=3.56E-15f) double);
    method @NonNull public android.location.GpsSatelliteEphemeris.GpsSatelliteClockModel.Builder setIodc(@IntRange(from=0, to=1023) int);
    method @NonNull public android.location.GpsSatelliteEphemeris.GpsSatelliteClockModel.Builder setTgd(@FloatRange(from=-5.97E-8F, to=5.97E-8f) double);
    method @NonNull public android.location.GpsSatelliteEphemeris.GpsSatelliteClockModel.Builder setTimeOfClockSeconds(@IntRange(from=0) long);
  }

  public static final class GpsSatelliteEphemeris.GpsSatelliteHealth implements android.os.Parcelable {
    method public int describeContents();
    method @FloatRange(from=0.0f) public double getFitInt();
    method @FloatRange(from=0.0f, to=8192.0f) public double getSvAccur();
    method @IntRange(from=0, to=63) public int getSvHealth();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.GpsSatelliteEphemeris.GpsSatelliteHealth> CREATOR;
  }

  public static final class GpsSatelliteEphemeris.GpsSatelliteHealth.Builder {
    ctor public GpsSatelliteEphemeris.GpsSatelliteHealth.Builder();
    method @NonNull public android.location.GpsSatelliteEphemeris.GpsSatelliteHealth build();
    method @NonNull public android.location.GpsSatelliteEphemeris.GpsSatelliteHealth.Builder setFitInt(@FloatRange(from=0.0f) double);
    method @NonNull public android.location.GpsSatelliteEphemeris.GpsSatelliteHealth.Builder setSvAccur(@FloatRange(from=0.0f, to=8192.0f) double);
    method @NonNull public android.location.GpsSatelliteEphemeris.GpsSatelliteHealth.Builder setSvHealth(@IntRange(from=0, to=63) int);
  }

  @FlaggedApi("android.location.flags.support_ionex_assistance") public final class IonexAssistance implements android.os.Parcelable {
    method public int describeContents();
    method @NonNull public android.location.IonexAssistance.Header getHeader();
    method @NonNull public android.location.IonexAssistance.TecMapSnapshot getTecMapSnapshot();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.IonexAssistance> CREATOR;
  }

  public static final class IonexAssistance.Axes implements android.os.Parcelable {
    ctor public IonexAssistance.Axes(@NonNull android.location.IonexAssistance.Axis, @NonNull android.location.IonexAssistance.Axis);
    method public int describeContents();
    method @NonNull public android.location.IonexAssistance.Axis getLatitudeAxis();
    method @NonNull public android.location.IonexAssistance.Axis getLongitudeAxis();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.IonexAssistance.Axes> CREATOR;
  }

  public static final class IonexAssistance.Axis implements android.os.Parcelable {
    ctor public IonexAssistance.Axis(@FloatRange(from=-180.0F, to=180.0f) double, @FloatRange(from=-180.0F, to=180.0f) double, @IntRange(from=0) int);
    method public int describeContents();
    method @FloatRange(from=-180.0F, to=180.0f) public double getDeltaDeg();
    method @IntRange(from=1) public int getNumPoints();
    method @FloatRange(from=-180.0F, to=180.0f) public double getStartDeg();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.IonexAssistance.Axis> CREATOR;
  }

  public static final class IonexAssistance.Builder {
    ctor public IonexAssistance.Builder();
    method @NonNull public android.location.IonexAssistance build();
    method @NonNull public android.location.IonexAssistance.Builder setHeader(@NonNull android.location.IonexAssistance.Header);
    method @NonNull public android.location.IonexAssistance.Builder setTecMapSnapshot(@NonNull android.location.IonexAssistance.TecMapSnapshot);
  }

  public static final class IonexAssistance.Header implements android.os.Parcelable {
    method public int describeContents();
    method @NonNull public android.location.IonexAssistance.Axes getAxesInfo();
    method @FloatRange(from=0.0, fromInclusive=false) public float getBaseRadiusKm();
    method @FloatRange(from=0.0, fromInclusive=false) public float getHeightKm();
    method public int getMappingFunction();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.IonexAssistance.Header> CREATOR;
    field public static final int MAPPING_FUNCTION_COSZ = 1; // 0x1
    field public static final int MAPPING_FUNCTION_NONE = 0; // 0x0
    field public static final int MAPPING_FUNCTION_QFAC = 2; // 0x2
  }

  public static final class IonexAssistance.Header.Builder {
    ctor public IonexAssistance.Header.Builder();
    method @NonNull public android.location.IonexAssistance.Header build();
    method @NonNull public android.location.IonexAssistance.Header.Builder setAxesInfo(@NonNull android.location.IonexAssistance.Axes);
    method @NonNull public android.location.IonexAssistance.Header.Builder setBaseRadiusKm(@FloatRange(from=0.0, fromInclusive=false) float);
    method @NonNull public android.location.IonexAssistance.Header.Builder setHeightKm(@FloatRange(from=0.0, fromInclusive=false) float);
    method @NonNull public android.location.IonexAssistance.Header.Builder setMappingFunction(int);
  }

  public static final class IonexAssistance.TecMapSnapshot implements android.os.Parcelable {
    method public int describeContents();
    method @IntRange(from=0) public long getEpochTimeSeconds();
    method @NonNull public java.util.List<java.lang.Float> getRmsMap();
    method @NonNull public java.util.List<java.lang.Float> getTecMap();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.IonexAssistance.TecMapSnapshot> CREATOR;
  }

  public static final class IonexAssistance.TecMapSnapshot.Builder {
    ctor public IonexAssistance.TecMapSnapshot.Builder();
    method @NonNull public android.location.IonexAssistance.TecMapSnapshot build();
    method @IntRange(from=0) @NonNull public android.location.IonexAssistance.TecMapSnapshot.Builder setEpochTimeSeconds(@IntRange(from=0) long);
    method @NonNull public android.location.IonexAssistance.TecMapSnapshot.Builder setRmsMap(@NonNull java.util.List<java.lang.Float>);
    method @NonNull public android.location.IonexAssistance.TecMapSnapshot.Builder setTecMap(@NonNull java.util.List<java.lang.Float>);
  }

  @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class IonosphericCorrection implements android.os.Parcelable {
    ctor public IonosphericCorrection(@IntRange(from=0) long, @NonNull android.location.GnssCorrectionComponent);
    method public int describeContents();
    method @IntRange(from=0) public long getCarrierFrequencyHz();
    method @NonNull public android.location.GnssCorrectionComponent getIonosphericCorrection();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.IonosphericCorrection> CREATOR;
  }

  @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class KeplerianOrbitModel implements android.os.Parcelable {
    method public int describeContents();
    method @FloatRange(from=-1.18E-8F, to=1.18E-8f) public double getDeltaN();
    method @FloatRange(from=0.0f, to=0.5f) public double getEccentricity();
    method @FloatRange(from=-3.15F, to=3.15f) public double getI0();
    method @FloatRange(from=-2.94E-9F, to=2.94E-9f) public double getIDot();
    method @FloatRange(from=-3.15F, to=3.15f) public double getM0();
    method @FloatRange(from=-3.15F, to=3.15f) public double getOmega();
    method @FloatRange(from=-3.15F, to=3.15f) public double getOmega0();
    method @FloatRange(from=-3.1E-6F, to=3.1E-6f) public double getOmegaDot();
    method @FloatRange(from=0.0f, to=8192.0f) public double getRootA();
    method @NonNull public android.location.KeplerianOrbitModel.SecondOrderHarmonicPerturbation getSecondOrderHarmonicPerturbation();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.KeplerianOrbitModel> CREATOR;
  }

  public static final class KeplerianOrbitModel.Builder {
    ctor public KeplerianOrbitModel.Builder();
    method @NonNull public android.location.KeplerianOrbitModel build();
    method @NonNull public android.location.KeplerianOrbitModel.Builder setDeltaN(@FloatRange(from=-1.18E-8F, to=1.18E-8f) double);
    method @NonNull public android.location.KeplerianOrbitModel.Builder setEccentricity(@FloatRange(from=0.0f, to=0.5f) double);
    method @NonNull public android.location.KeplerianOrbitModel.Builder setI0(@FloatRange(from=-3.15F, to=3.15f) double);
    method @NonNull public android.location.KeplerianOrbitModel.Builder setIDot(@FloatRange(from=-2.94E-9F, to=2.94E-9f) double);
    method @NonNull public android.location.KeplerianOrbitModel.Builder setM0(@FloatRange(from=-3.15F, to=3.15f) double);
    method @NonNull public android.location.KeplerianOrbitModel.Builder setOmega(@FloatRange(from=-3.15F, to=3.15f) double);
    method @NonNull public android.location.KeplerianOrbitModel.Builder setOmega0(@FloatRange(from=-3.15F, to=3.15f) double);
    method @NonNull public android.location.KeplerianOrbitModel.Builder setOmegaDot(@FloatRange(from=-3.1E-6F, to=3.1E-6f) double);
    method @NonNull public android.location.KeplerianOrbitModel.Builder setRootA(@FloatRange(from=0.0f, to=8192.0f) double);
    method @NonNull public android.location.KeplerianOrbitModel.Builder setSecondOrderHarmonicPerturbation(@NonNull android.location.KeplerianOrbitModel.SecondOrderHarmonicPerturbation);
  }

  public static final class KeplerianOrbitModel.SecondOrderHarmonicPerturbation implements android.os.Parcelable {
    method public int describeContents();
    method @FloatRange(from=-6.11E-5F, to=6.11E-5f) public double getCic();
    method @FloatRange(from=-6.11E-5F, to=6.11E-5f) public double getCis();
    method @FloatRange(from=-2048.0F, to=2048.0f) public double getCrc();
    method @FloatRange(from=-2048.0F, to=2048.0f) public double getCrs();
    method @FloatRange(from=-6.11E-5F, to=6.11E-5f) public double getCuc();
    method @FloatRange(from=-6.11E-5F, to=6.11E-5f) public double getCus();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.KeplerianOrbitModel.SecondOrderHarmonicPerturbation> CREATOR;
  }

  public static final class KeplerianOrbitModel.SecondOrderHarmonicPerturbation.Builder {
    ctor public KeplerianOrbitModel.SecondOrderHarmonicPerturbation.Builder();
    method @NonNull public android.location.KeplerianOrbitModel.SecondOrderHarmonicPerturbation build();
    method @NonNull public android.location.KeplerianOrbitModel.SecondOrderHarmonicPerturbation.Builder setCic(@FloatRange(from=-6.11E-5F, to=6.11E-5f) double);
    method @NonNull public android.location.KeplerianOrbitModel.SecondOrderHarmonicPerturbation.Builder setCis(@FloatRange(from=-6.11E-5F, to=6.11E-5f) double);
    method @NonNull public android.location.KeplerianOrbitModel.SecondOrderHarmonicPerturbation.Builder setCrc(@FloatRange(from=-2048.0F, to=2048.0f) double);
    method @NonNull public android.location.KeplerianOrbitModel.SecondOrderHarmonicPerturbation.Builder setCrs(@FloatRange(from=-2048.0F, to=2048.0f) double);
    method @NonNull public android.location.KeplerianOrbitModel.SecondOrderHarmonicPerturbation.Builder setCuc(@FloatRange(from=-6.11E-5F, to=6.11E-5f) double);
    method @NonNull public android.location.KeplerianOrbitModel.SecondOrderHarmonicPerturbation.Builder setCus(@FloatRange(from=-6.11E-5F, to=6.11E-5f) double);
  }

  @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class KlobucharIonosphericModel implements android.os.Parcelable {
    method public int describeContents();
    method @FloatRange(from=-1.193E-7F, to=1.193E-7f) public double getAlpha0();
    method @FloatRange(from=-9.54E-7F, to=9.54E-7f) public double getAlpha1();
    method @FloatRange(from=-7.63E-6F, to=7.63E-6f) public double getAlpha2();
    method @FloatRange(from=-7.63E-6F, to=7.63E-6f) public double getAlpha3();
    method @FloatRange(from=-262144.0F, to=262144.0f) public double getBeta0();
    method @FloatRange(from=-2097152.0F, to=2097152.0f) public double getBeta1();
    method @FloatRange(from=-8388608.0F, to=8388608.0f) public double getBeta2();
    method @FloatRange(from=-8388608.0F, to=8388608.0f) public double getBeta3();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.KlobucharIonosphericModel> CREATOR;
  }

  public static final class KlobucharIonosphericModel.Builder {
    ctor public KlobucharIonosphericModel.Builder();
    method @NonNull public android.location.KlobucharIonosphericModel build();
    method @NonNull public android.location.KlobucharIonosphericModel.Builder setAlpha0(@FloatRange(from=-1.193E-7F, to=1.193E-7f) double);
    method @NonNull public android.location.KlobucharIonosphericModel.Builder setAlpha1(@FloatRange(from=-9.54E-7F, to=9.54E-7f) double);
    method @NonNull public android.location.KlobucharIonosphericModel.Builder setAlpha2(@FloatRange(from=-7.63E-6F, to=7.63E-6f) double);
    method @NonNull public android.location.KlobucharIonosphericModel.Builder setAlpha3(@FloatRange(from=-7.63E-6F, to=7.63E-6f) double);
    method @NonNull public android.location.KlobucharIonosphericModel.Builder setBeta0(@FloatRange(from=-262144.0F, to=262144.0f) double);
    method @NonNull public android.location.KlobucharIonosphericModel.Builder setBeta1(@FloatRange(from=-2097152.0F, to=2097152.0f) double);
    method @NonNull public android.location.KlobucharIonosphericModel.Builder setBeta2(@FloatRange(from=-8388608.0F, to=8388608.0f) double);
    method @NonNull public android.location.KlobucharIonosphericModel.Builder setBeta3(@FloatRange(from=-8388608.0F, to=8388608.0f) double);
  }

  public final class LastLocationRequest implements android.os.Parcelable {
    method public int describeContents();
    method public boolean isAdasGnssBypass();
    method public boolean isHiddenFromAppOps();
    method public boolean isLocationSettingsIgnored();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.LastLocationRequest> CREATOR;
  }

  public static final class LastLocationRequest.Builder {
    ctor public LastLocationRequest.Builder();
    ctor public LastLocationRequest.Builder(@NonNull android.location.LastLocationRequest);
    method @NonNull public android.location.LastLocationRequest build();
    method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_BYPASS) public android.location.LastLocationRequest.Builder setAdasGnssBypass(boolean);
    method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_APP_OPS_STATS) public android.location.LastLocationRequest.Builder setHiddenFromAppOps(boolean);
    method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_BYPASS) public android.location.LastLocationRequest.Builder setLocationSettingsIgnored(boolean);
  }

  @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class LeapSecondsModel implements android.os.Parcelable {
    method public int describeContents();
    method @IntRange(from=0) public int getDayNumberLeapSecondsFuture();
    method @IntRange(from=0) public int getLeapSeconds();
    method @IntRange(from=0) public int getLeapSecondsFuture();
    method @IntRange(from=0) public int getWeekNumberLeapSecondsFuture();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.LeapSecondsModel> CREATOR;
  }

  public static final class LeapSecondsModel.Builder {
    ctor public LeapSecondsModel.Builder();
    method @NonNull public android.location.LeapSecondsModel build();
    method @NonNull public android.location.LeapSecondsModel.Builder setDayNumberLeapSecondsFuture(@IntRange(from=0) int);
    method @NonNull public android.location.LeapSecondsModel.Builder setLeapSeconds(@IntRange(from=0) int);
    method @NonNull public android.location.LeapSecondsModel.Builder setLeapSecondsFuture(@IntRange(from=0) int);
    method @NonNull public android.location.LeapSecondsModel.Builder setWeekNumberLeapSecondsFuture(@IntRange(from=0) int);
  }

  public class LocationManager {
    method @Deprecated @FlaggedApi("android.location.flags.deprecate_provider_request_apis") @RequiresPermission(allOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.INTERACT_ACROSS_USERS}) public void addProviderRequestChangedListener(@NonNull java.util.concurrent.Executor, @NonNull android.location.provider.ProviderRequest.ChangedListener);
    method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void flushGnssBatch();
    method @FlaggedApi("android.location.flags.change_get_adas_allowlist_from_hidden_to_system") @NonNull @RequiresPermission(android.Manifest.permission.READ_LOCATION_BYPASS_ALLOWLIST) public android.os.PackageTagsList getAdasAllowlist();
    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void getCurrentLocation(@NonNull android.location.LocationRequest, @Nullable android.os.CancellationSignal, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.location.Location>);
    method @Nullable public String getExtraLocationControllerPackage();
    method @Deprecated public int getGnssBatchSize();
    method @Nullable @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public android.location.Location getLastKnownLocation(@NonNull String, @NonNull android.location.LastLocationRequest);
    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public void injectGnssMeasurementCorrections(@NonNull android.location.GnssMeasurementCorrections);
    method public boolean isAdasGnssLocationEnabled();
    method public boolean isExtraLocationControllerPackageEnabled();
    method public boolean isLocationEnabledForUser(@NonNull android.os.UserHandle);
    method public boolean isProviderEnabledForUser(@NonNull String, @NonNull android.os.UserHandle);
    method @Deprecated @RequiresPermission(android.Manifest.permission.READ_DEVICE_CONFIG) public boolean isProviderPackage(@NonNull String);
    method @RequiresPermission(android.Manifest.permission.READ_DEVICE_CONFIG) public boolean isProviderPackage(@Nullable String, @NonNull String, @Nullable String);
    method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.UPDATE_APP_OPS_STATS}) public boolean registerGnssBatchedLocationCallback(long, boolean, @NonNull android.location.BatchedLocationCallback, @Nullable android.os.Handler);
    method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean registerGnssMeasurementsCallback(@NonNull android.location.GnssRequest, @NonNull java.util.concurrent.Executor, @NonNull android.location.GnssMeasurementsEvent.Callback);
    method @Deprecated @FlaggedApi("android.location.flags.deprecate_provider_request_apis") @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void removeProviderRequestChangedListener(@NonNull android.location.provider.ProviderRequest.ChangedListener);
    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull android.location.LocationListener, @Nullable android.os.Looper);
    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull java.util.concurrent.Executor, @NonNull android.location.LocationListener);
    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull android.app.PendingIntent);
    method @RequiresPermission(android.Manifest.permission.LOCATION_BYPASS) public void setAdasGnssLocationEnabled(boolean);
    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void setExtraLocationControllerPackage(@Nullable String);
    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void setExtraLocationControllerPackageEnabled(boolean);
    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setLocationEnabledForUser(boolean, @NonNull android.os.UserHandle);
    method @Deprecated @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean setProviderEnabledForUser(@NonNull String, boolean, @NonNull android.os.UserHandle);
    method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean unregisterGnssBatchedLocationCallback(@NonNull android.location.BatchedLocationCallback);
    field public static final String ACTION_ADAS_GNSS_ENABLED_CHANGED = "android.location.action.ADAS_GNSS_ENABLED_CHANGED";
    field public static final String EXTRA_ADAS_GNSS_ENABLED = "android.location.extra.ADAS_GNSS_ENABLED";
    field @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public static final String GPS_HARDWARE_PROVIDER = "gps_hardware";
  }

  public final class LocationRequest implements android.os.Parcelable {
    method @Deprecated @NonNull public static android.location.LocationRequest create();
    method @Deprecated @NonNull public static android.location.LocationRequest createFromDeprecatedCriteria(@NonNull android.location.Criteria, long, float, boolean);
    method @Deprecated @NonNull public static android.location.LocationRequest createFromDeprecatedProvider(@NonNull String, long, float, boolean);
    method @Deprecated public long getExpireAt();
    method @Deprecated public long getExpireIn();
    method @Deprecated public long getFastestInterval();
    method @Deprecated public boolean getHideFromAppOps();
    method @Deprecated public long getInterval();
    method @Deprecated public int getNumUpdates();
    method @Deprecated @NonNull public String getProvider();
    method @Deprecated public float getSmallestDisplacement();
    method @NonNull public android.os.WorkSource getWorkSource();
    method public boolean isAdasGnssBypass();
    method public boolean isHiddenFromAppOps();
    method public boolean isLocationSettingsIgnored();
    method public boolean isLowPower();
    method @Deprecated public boolean isLowPowerMode();
    method @Deprecated @NonNull public android.location.LocationRequest setExpireAt(long);
    method @Deprecated @NonNull public android.location.LocationRequest setExpireIn(long);
    method @Deprecated @NonNull public android.location.LocationRequest setFastestInterval(long);
    method @Deprecated public void setHideFromAppOps(boolean);
    method @Deprecated @NonNull public android.location.LocationRequest setInterval(long);
    method @Deprecated @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_BYPASS) public android.location.LocationRequest setLocationSettingsIgnored(boolean);
    method @Deprecated @NonNull public android.location.LocationRequest setLowPowerMode(boolean);
    method @Deprecated @NonNull public android.location.LocationRequest setNumUpdates(int);
    method @Deprecated @NonNull public android.location.LocationRequest setProvider(@NonNull String);
    method @Deprecated @NonNull public android.location.LocationRequest setQuality(int);
    method @Deprecated @NonNull public android.location.LocationRequest setSmallestDisplacement(float);
    method @Deprecated public void setWorkSource(@Nullable android.os.WorkSource);
    field @Deprecated public static final int ACCURACY_BLOCK = 102; // 0x66
    field @Deprecated public static final int ACCURACY_CITY = 104; // 0x68
    field @Deprecated public static final int ACCURACY_FINE = 100; // 0x64
    field @Deprecated public static final int POWER_HIGH = 203; // 0xcb
    field @Deprecated public static final int POWER_LOW = 201; // 0xc9
    field @Deprecated public static final int POWER_NONE = 200; // 0xc8
  }

  public static final class LocationRequest.Builder {
    method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_BYPASS) public android.location.LocationRequest.Builder setAdasGnssBypass(boolean);
    method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_APP_OPS_STATS) public android.location.LocationRequest.Builder setHiddenFromAppOps(boolean);
    method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_BYPASS) public android.location.LocationRequest.Builder setLocationSettingsIgnored(boolean);
    method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public android.location.LocationRequest.Builder setLowPower(boolean);
    method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public android.location.LocationRequest.Builder setWorkSource(@Nullable android.os.WorkSource);
  }

  @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class QzssAssistance implements android.os.Parcelable {
    method public int describeContents();
    method @Nullable public android.location.GnssAlmanac getAlmanac();
    method @NonNull public java.util.List<android.location.AuxiliaryInformation> getAuxiliaryInformation();
    method @Nullable public android.location.KlobucharIonosphericModel getIonosphericModel();
    method @Nullable public android.location.LeapSecondsModel getLeapSecondsModel();
    method @NonNull public java.util.List<android.location.RealTimeIntegrityModel> getRealTimeIntegrityModels();
    method @NonNull public java.util.List<android.location.GnssAssistance.GnssSatelliteCorrections> getSatelliteCorrections();
    method @NonNull public java.util.List<android.location.QzssSatelliteEphemeris> getSatelliteEphemeris();
    method @NonNull public java.util.List<android.location.TimeModel> getTimeModels();
    method @Nullable public android.location.UtcModel getUtcModel();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.QzssAssistance> CREATOR;
  }

  public static final class QzssAssistance.Builder {
    ctor public QzssAssistance.Builder();
    method @NonNull public android.location.QzssAssistance build();
    method @NonNull public android.location.QzssAssistance.Builder setAlmanac(@Nullable android.location.GnssAlmanac);
    method @NonNull public android.location.QzssAssistance.Builder setAuxiliaryInformation(@NonNull java.util.List<android.location.AuxiliaryInformation>);
    method @NonNull public android.location.QzssAssistance.Builder setIonosphericModel(@Nullable android.location.KlobucharIonosphericModel);
    method @NonNull public android.location.QzssAssistance.Builder setLeapSecondsModel(@Nullable android.location.LeapSecondsModel);
    method @NonNull public android.location.QzssAssistance.Builder setRealTimeIntegrityModels(@NonNull java.util.List<android.location.RealTimeIntegrityModel>);
    method @NonNull public android.location.QzssAssistance.Builder setSatelliteCorrections(@NonNull java.util.List<android.location.GnssAssistance.GnssSatelliteCorrections>);
    method @NonNull public android.location.QzssAssistance.Builder setSatelliteEphemeris(@NonNull java.util.List<android.location.QzssSatelliteEphemeris>);
    method @NonNull public android.location.QzssAssistance.Builder setTimeModels(@NonNull java.util.List<android.location.TimeModel>);
    method @NonNull public android.location.QzssAssistance.Builder setUtcModel(@Nullable android.location.UtcModel);
  }

  @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 @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;
  }

  public static final class QzssSatelliteEphemeris.Builder {
    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 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 {
    method public int describeContents();
    method @NonNull public String getAdvisoryNumber();
    method @NonNull public String getAdvisoryType();
    method @NonNull public java.util.List<android.location.GnssSignalType> getBadSignalTypes();
    method @IntRange(from=1, to=206) public int getBadSvid();
    method @IntRange(from=0) public long getEndDateSeconds();
    method @IntRange(from=0) public long getPublishDateSeconds();
    method @IntRange(from=0) public long getStartDateSeconds();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.RealTimeIntegrityModel> CREATOR;
  }

  public static final class RealTimeIntegrityModel.Builder {
    ctor public RealTimeIntegrityModel.Builder();
    method @NonNull public android.location.RealTimeIntegrityModel build();
    method @NonNull public android.location.RealTimeIntegrityModel.Builder setAdvisoryNumber(@NonNull String);
    method @NonNull public android.location.RealTimeIntegrityModel.Builder setAdvisoryType(@NonNull String);
    method @NonNull public android.location.RealTimeIntegrityModel.Builder setBadSignalTypes(@NonNull java.util.List<android.location.GnssSignalType>);
    method @NonNull public android.location.RealTimeIntegrityModel.Builder setBadSvid(@IntRange(from=1, to=206) int);
    method @NonNull public android.location.RealTimeIntegrityModel.Builder setEndDateSeconds(@IntRange(from=0) long);
    method @NonNull public android.location.RealTimeIntegrityModel.Builder setPublishDateSeconds(@IntRange(from=0) long);
    method @NonNull public android.location.RealTimeIntegrityModel.Builder setStartDateSeconds(@IntRange(from=0) long);
  }

  @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class SatelliteEphemerisTime implements android.os.Parcelable {
    method public int describeContents();
    method @IntRange(from=0, to=1023) public int getIode();
    method @IntRange(from=0, to=604799) public int getToeSeconds();
    method @IntRange(from=0) public int getWeekNumber();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.SatelliteEphemerisTime> CREATOR;
  }

  public static final class SatelliteEphemerisTime.Builder {
    ctor public SatelliteEphemerisTime.Builder();
    method @NonNull public android.location.SatelliteEphemerisTime build();
    method @NonNull public android.location.SatelliteEphemerisTime.Builder setIode(@IntRange(from=0, to=1023) int);
    method @NonNull public android.location.SatelliteEphemerisTime.Builder setToeSeconds(@IntRange(from=0, to=604799) int);
    method @NonNull public android.location.SatelliteEphemerisTime.Builder setWeekNumber(@IntRange(from=0) int);
  }

  public final class SatellitePvt implements android.os.Parcelable {
    method public int describeContents();
    method @Nullable public android.location.SatellitePvt.ClockInfo getClockInfo();
    method public int getEphemerisSource();
    method @FloatRange public double getIonoDelayMeters();
    method @IntRange(from=0, to=1023) public int getIssueOfDataClock();
    method @IntRange(from=0, to=1023) public int getIssueOfDataEphemeris();
    method @Nullable public android.location.SatellitePvt.PositionEcef getPositionEcef();
    method @IntRange(from=0) public long getTimeOfClockSeconds();
    method @IntRange(from=0) public long getTimeOfEphemerisSeconds();
    method @FloatRange public double getTropoDelayMeters();
    method @Nullable public android.location.SatellitePvt.VelocityEcef getVelocityEcef();
    method public boolean hasIono();
    method public boolean hasIssueOfDataClock();
    method public boolean hasIssueOfDataEphemeris();
    method public boolean hasPositionVelocityClockInfo();
    method public boolean hasTimeOfClockSeconds();
    method public boolean hasTimeOfEphemerisSeconds();
    method public boolean hasTropo();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.SatellitePvt> CREATOR;
    field public static final int EPHEMERIS_SOURCE_DEMODULATED = 0; // 0x0
    field public static final int EPHEMERIS_SOURCE_OTHER = 3; // 0x3
    field public static final int EPHEMERIS_SOURCE_SERVER_LONG_TERM = 2; // 0x2
    field public static final int EPHEMERIS_SOURCE_SERVER_NORMAL = 1; // 0x1
  }

  public static final class SatellitePvt.Builder {
    ctor public SatellitePvt.Builder();
    method @NonNull public android.location.SatellitePvt build();
    method @NonNull public android.location.SatellitePvt.Builder setClockInfo(@NonNull android.location.SatellitePvt.ClockInfo);
    method @NonNull public android.location.SatellitePvt.Builder setEphemerisSource(int);
    method @NonNull public android.location.SatellitePvt.Builder setIonoDelayMeters(@FloatRange(from=0.0f, to=100.0f) double);
    method @NonNull public android.location.SatellitePvt.Builder setIssueOfDataClock(@IntRange(from=0, to=1023) int);
    method @NonNull public android.location.SatellitePvt.Builder setIssueOfDataEphemeris(@IntRange(from=0, to=1023) int);
    method @NonNull public android.location.SatellitePvt.Builder setPositionEcef(@NonNull android.location.SatellitePvt.PositionEcef);
    method @NonNull public android.location.SatellitePvt.Builder setTimeOfClockSeconds(@IntRange(from=0) long);
    method @NonNull public android.location.SatellitePvt.Builder setTimeOfEphemerisSeconds(@IntRange(from=0) long);
    method @NonNull public android.location.SatellitePvt.Builder setTropoDelayMeters(@FloatRange(from=0.0f, to=100.0f) double);
    method @NonNull public android.location.SatellitePvt.Builder setVelocityEcef(@NonNull android.location.SatellitePvt.VelocityEcef);
  }

  public static final class SatellitePvt.ClockInfo implements android.os.Parcelable {
    ctor public SatellitePvt.ClockInfo(double, double, double);
    method public int describeContents();
    method @FloatRange public double getClockDriftMetersPerSecond();
    method @FloatRange public double getHardwareCodeBiasMeters();
    method @FloatRange public double getTimeCorrectionMeters();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.SatellitePvt.ClockInfo> CREATOR;
  }

  public static final class SatellitePvt.PositionEcef implements android.os.Parcelable {
    ctor public SatellitePvt.PositionEcef(double, double, double, double);
    method public int describeContents();
    method @FloatRange(from=0.0f, fromInclusive=false) public double getUreMeters();
    method @FloatRange public double getXMeters();
    method @FloatRange public double getYMeters();
    method @FloatRange public double getZMeters();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.SatellitePvt.PositionEcef> CREATOR;
  }

  public static final class SatellitePvt.VelocityEcef implements android.os.Parcelable {
    ctor public SatellitePvt.VelocityEcef(double, double, double, double);
    method public int describeContents();
    method @FloatRange(from=0.0f, fromInclusive=false) public double getUreRateMetersPerSecond();
    method @FloatRange public double getXMetersPerSecond();
    method @FloatRange public double getYMetersPerSecond();
    method @FloatRange public double getZMetersPerSecond();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.SatellitePvt.VelocityEcef> CREATOR;
  }

  @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class TimeModel implements android.os.Parcelable {
    method public int describeContents();
    method @FloatRange(from=-1.0F, to=1.0f) public double getA0();
    method @FloatRange(from=-3.28E-6F, to=3.28E-6f) public double getA1();
    method @IntRange(from=0, to=604800) public int getTimeOfWeek();
    method public int getToGnss();
    method @IntRange(from=0) public int getWeekNumber();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.TimeModel> CREATOR;
  }

  public static final class TimeModel.Builder {
    ctor public TimeModel.Builder();
    method @NonNull public android.location.TimeModel build();
    method @NonNull public android.location.TimeModel.Builder setA0(@FloatRange(from=-1.0F, to=1.0f) double);
    method @NonNull public android.location.TimeModel.Builder setA1(@FloatRange(from=-3.28E-6F, to=3.28E-6f) double);
    method @NonNull public android.location.TimeModel.Builder setTimeOfWeek(@IntRange(from=0, to=604800) int);
    method @NonNull public android.location.TimeModel.Builder setToGnss(int);
    method @NonNull public android.location.TimeModel.Builder setWeekNumber(@IntRange(from=0) int);
  }

  @FlaggedApi("android.location.flags.gnss_assistance_interface") public final class UtcModel implements android.os.Parcelable {
    method public int describeContents();
    method @FloatRange(from=-2.0F, to=2.0f) public double getA0();
    method @FloatRange(from=-7.45E-9F, to=7.45E-9f) public double getA1();
    method @IntRange(from=0, to=604800) public int getTimeOfWeek();
    method @IntRange(from=0) public int getWeekNumber();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.UtcModel> CREATOR;
  }

  public static final class UtcModel.Builder {
    ctor public UtcModel.Builder();
    method @NonNull public android.location.UtcModel build();
    method @NonNull public android.location.UtcModel.Builder setA0(@FloatRange(from=-2.0F, to=2.0f) double);
    method @NonNull public android.location.UtcModel.Builder setA1(@FloatRange(from=-7.45E-9F, to=7.45E-9f) double);
    method @NonNull public android.location.UtcModel.Builder setTimeOfWeek(@IntRange(from=0, to=604800) int);
    method @NonNull public android.location.UtcModel.Builder setWeekNumber(@IntRange(from=0) int);
  }

}

package android.location.provider {

  @FlaggedApi("android.location.flags.new_geocoder") public final class ForwardGeocodeRequest implements android.os.Parcelable {
    method public int describeContents();
    method @Nullable public String getCallingAttributionTag();
    method @NonNull public String getCallingPackage();
    method public int getCallingUid();
    method @NonNull public java.util.Locale getLocale();
    method @NonNull public String getLocationName();
    method @FloatRange(from=-90.0, to=90.0) public double getLowerLeftLatitude();
    method @FloatRange(from=-180.0, to=180.0) public double getLowerLeftLongitude();
    method @IntRange(from=1) public int getMaxResults();
    method @FloatRange(from=-90.0, to=90.0) public double getUpperRightLatitude();
    method @FloatRange(from=-180.0, to=180.0) public double getUpperRightLongitude();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.provider.ForwardGeocodeRequest> CREATOR;
  }

  public static final class ForwardGeocodeRequest.Builder {
    ctor public ForwardGeocodeRequest.Builder(@NonNull String, @FloatRange(from=-90.0, to=90.0) double, @FloatRange(from=-180.0, to=180.0) double, @FloatRange(from=-90.0, to=90.0) double, @FloatRange(from=-180.0, to=180.0) double, @IntRange(from=1) int, @NonNull java.util.Locale, int, @NonNull String);
    method @NonNull public android.location.provider.ForwardGeocodeRequest build();
    method @NonNull public android.location.provider.ForwardGeocodeRequest.Builder setCallingAttributionTag(@NonNull String);
  }

  @FlaggedApi("android.location.flags.new_geocoder") public abstract class GeocodeProviderBase {
    ctor public GeocodeProviderBase(@NonNull android.content.Context, @NonNull String);
    method @NonNull public final android.os.IBinder getBinder();
    method public abstract void onForwardGeocode(@NonNull android.location.provider.ForwardGeocodeRequest, @NonNull android.os.OutcomeReceiver<java.util.List<android.location.Address>,java.lang.Throwable>);
    method public abstract void onReverseGeocode(@NonNull android.location.provider.ReverseGeocodeRequest, @NonNull android.os.OutcomeReceiver<java.util.List<android.location.Address>,java.lang.Throwable>);
    field public static final String ACTION_GEOCODE_PROVIDER = "com.android.location.service.GeocodeProvider";
  }

  @FlaggedApi("android.location.flags.gnss_assistance_interface") public abstract class GnssAssistanceProviderBase {
    ctor public GnssAssistanceProviderBase(@NonNull android.content.Context, @NonNull String);
    method @NonNull public final android.os.IBinder getBinder();
    method public abstract void onRequest(@NonNull android.os.OutcomeReceiver<android.location.GnssAssistance,java.lang.Throwable>);
    field public static final String ACTION_GNSS_ASSISTANCE_PROVIDER = "android.location.provider.action.GNSS_ASSISTANCE_PROVIDER";
  }

  public abstract class LocationProviderBase {
    ctor public LocationProviderBase(@NonNull android.content.Context, @NonNull String, @NonNull android.location.provider.ProviderProperties);
    method @Nullable public final android.os.IBinder getBinder();
    method @NonNull public android.location.provider.ProviderProperties getProperties();
    method public boolean isAllowed();
    method public abstract void onFlush(@NonNull android.location.provider.LocationProviderBase.OnFlushCompleteCallback);
    method public abstract void onSendExtraCommand(@NonNull String, @Nullable android.os.Bundle);
    method public abstract void onSetRequest(@NonNull android.location.provider.ProviderRequest);
    method public void reportLocation(@NonNull android.location.Location);
    method public void reportLocations(@NonNull java.util.List<android.location.Location>);
    method public void setAllowed(boolean);
    method public void setProperties(@NonNull android.location.provider.ProviderProperties);
    field public static final String ACTION_FUSED_PROVIDER = "com.android.location.service.FusedLocationProvider";
    field public static final String ACTION_GNSS_PROVIDER = "android.location.provider.action.GNSS_PROVIDER";
    field public static final String ACTION_NETWORK_PROVIDER = "com.android.location.service.v3.NetworkLocationProvider";
  }

  public static interface LocationProviderBase.OnFlushCompleteCallback {
    method public void onFlushComplete();
  }

  @FlaggedApi("android.location.flags.population_density_provider") public abstract class PopulationDensityProviderBase {
    ctor public PopulationDensityProviderBase(@NonNull android.content.Context, @NonNull String);
    method @Nullable public final android.os.IBinder getBinder();
    method public abstract void onGetCoarsenedS2Cells(double, double, @IntRange(from=0) int, @NonNull android.os.OutcomeReceiver<long[],java.lang.Throwable>);
    method public abstract void onGetDefaultCoarseningLevel(@NonNull android.os.OutcomeReceiver<java.lang.Integer,java.lang.Throwable>);
    field public static final String ACTION_POPULATION_DENSITY_PROVIDER = "com.android.location.service.PopulationDensityProvider";
  }

  public final class ProviderRequest implements android.os.Parcelable {
    method public int describeContents();
    method @IntRange(from=0) public long getIntervalMillis();
    method @IntRange(from=0) public long getMaxUpdateDelayMillis();
    method public int getQuality();
    method @NonNull public android.os.WorkSource getWorkSource();
    method public boolean isActive();
    method public boolean isLocationSettingsIgnored();
    method public boolean isLowPower();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.provider.ProviderRequest> CREATOR;
    field @NonNull public static final android.location.provider.ProviderRequest EMPTY_REQUEST;
    field public static final long INTERVAL_DISABLED = 9223372036854775807L; // 0x7fffffffffffffffL
  }

  public static final class ProviderRequest.Builder {
    ctor public ProviderRequest.Builder();
    method @NonNull public android.location.provider.ProviderRequest build();
    method @NonNull public android.location.provider.ProviderRequest.Builder setIntervalMillis(@IntRange(from=0) long);
    method @NonNull public android.location.provider.ProviderRequest.Builder setLocationSettingsIgnored(boolean);
    method @NonNull public android.location.provider.ProviderRequest.Builder setLowPower(boolean);
    method @NonNull public android.location.provider.ProviderRequest.Builder setMaxUpdateDelayMillis(@IntRange(from=0) long);
    method @NonNull public android.location.provider.ProviderRequest.Builder setQuality(int);
    method @NonNull public android.location.provider.ProviderRequest.Builder setWorkSource(@NonNull android.os.WorkSource);
  }

  public static interface ProviderRequest.ChangedListener {
    method public void onProviderRequestChanged(@NonNull String, @NonNull android.location.provider.ProviderRequest);
  }

  @FlaggedApi("android.location.flags.new_geocoder") public final class ReverseGeocodeRequest implements android.os.Parcelable {
    method public int describeContents();
    method @Nullable public String getCallingAttributionTag();
    method @NonNull public String getCallingPackage();
    method public int getCallingUid();
    method @FloatRange(from=-90.0, to=90.0) public double getLatitude();
    method @NonNull public java.util.Locale getLocale();
    method @FloatRange(from=-180.0, to=180.0) public double getLongitude();
    method @IntRange(from=1) public int getMaxResults();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.provider.ReverseGeocodeRequest> CREATOR;
  }

  public static final class ReverseGeocodeRequest.Builder {
    ctor public ReverseGeocodeRequest.Builder(@FloatRange(from=-90.0, to=90.0) double, @FloatRange(from=-180.0, to=180.0) double, @IntRange(from=0) int, @NonNull java.util.Locale, int, @NonNull String);
    method @NonNull public android.location.provider.ReverseGeocodeRequest build();
    method @NonNull public android.location.provider.ReverseGeocodeRequest.Builder setCallingAttributionTag(@NonNull String);
  }

}

