Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 30f95a7d authored by Lifu Tang's avatar Lifu Tang
Browse files

Supported GNSS multi-constellation in frameworks

Change-Id: I82574afd3697c47e806d2cfaedc33756d0353b73
parent 365458c6
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -327,10 +327,10 @@ LOCAL_SRC_FILES += \
	location/java/android/location/IFusedProvider.aidl \
	location/java/android/location/IGeocodeProvider.aidl \
	location/java/android/location/IGeofenceProvider.aidl \
	location/java/android/location/IGnssStatusListener.aidl \
	location/java/android/location/IGnssStatusProvider.aidl \
	location/java/android/location/IGpsMeasurementsListener.aidl \
	location/java/android/location/IGpsNavigationMessageListener.aidl \
	location/java/android/location/IGpsStatusListener.aidl \
	location/java/android/location/IGpsStatusProvider.aidl \
	location/java/android/location/ILocationListener.aidl \
	location/java/android/location/ILocationManager.aidl \
	location/java/android/location/IFusedGeofenceHardware.aidl \
+42 −5
Original line number Diff line number Diff line
@@ -18856,6 +18856,37 @@ package android.location {
    method public static boolean isPresent();
  }
  public abstract interface GnssNmeaListener {
    method public abstract void onNmeaReceived(long, java.lang.String);
  }
  public final class GnssStatus {
    method public float getAzimuth(int);
    method public int getConstellationType(int);
    method public float getElevation(int);
    method public int getNumSatellites();
    method public int getPrn(int);
    method public float getSnr(int);
    method public boolean hasAlmanac(int);
    method public boolean hasEphemeris(int);
    method public boolean usedInFix(int);
    field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
    field public static final int CONSTELLATION_GALILEO = 6; // 0x6
    field public static final int CONSTELLATION_GLONASS = 3; // 0x3
    field public static final int CONSTELLATION_GPS = 1; // 0x1
    field public static final int CONSTELLATION_QZSS = 4; // 0x4
    field public static final int CONSTELLATION_SBAS = 2; // 0x2
    field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
  }
  public abstract class GnssStatusCallback {
    ctor public GnssStatusCallback();
    method public void onFirstFix(int);
    method public void onSatelliteStatusChanged(android.location.GnssStatus);
    method public void onStarted();
    method public void onStopped();
  }
  public final class GpsSatellite {
    method public float getAzimuth();
    method public float getElevation();
@@ -18940,8 +18971,10 @@ package android.location {
  }
  public class LocationManager {
    method public boolean addGpsStatusListener(android.location.GpsStatus.Listener);
    method public boolean addNmeaListener(android.location.GpsStatus.NmeaListener);
    method public deprecated boolean addGpsStatusListener(android.location.GpsStatus.Listener);
    method public deprecated boolean addNmeaListener(android.location.GpsStatus.NmeaListener);
    method public boolean addNmeaListener(android.location.GnssNmeaListener);
    method public boolean addNmeaListener(android.location.GnssNmeaListener, android.os.Handler);
    method public void addProximityAlert(double, double, float, long, android.app.PendingIntent);
    method public void addTestProvider(java.lang.String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, int, int);
    method public void clearTestProviderEnabled(java.lang.String);
@@ -18949,14 +18982,17 @@ package android.location {
    method public void clearTestProviderStatus(java.lang.String);
    method public java.util.List<java.lang.String> getAllProviders();
    method public java.lang.String getBestProvider(android.location.Criteria, boolean);
    method public android.location.GpsStatus getGpsStatus(android.location.GpsStatus);
    method public deprecated android.location.GpsStatus getGpsStatus(android.location.GpsStatus);
    method public android.location.Location getLastKnownLocation(java.lang.String);
    method public android.location.LocationProvider getProvider(java.lang.String);
    method public java.util.List<java.lang.String> getProviders(boolean);
    method public java.util.List<java.lang.String> getProviders(android.location.Criteria, boolean);
    method public boolean isProviderEnabled(java.lang.String);
    method public void removeGpsStatusListener(android.location.GpsStatus.Listener);
    method public void removeNmeaListener(android.location.GpsStatus.NmeaListener);
    method public boolean registerGnssStatusCallback(android.location.GnssStatusCallback);
    method public boolean registerGnssStatusCallback(android.location.GnssStatusCallback, android.os.Handler);
    method public deprecated void removeGpsStatusListener(android.location.GpsStatus.Listener);
    method public deprecated void removeNmeaListener(android.location.GpsStatus.NmeaListener);
    method public void removeNmeaListener(android.location.GnssNmeaListener);
    method public void removeProximityAlert(android.app.PendingIntent);
    method public void removeTestProvider(java.lang.String);
    method public void removeUpdates(android.location.LocationListener);
@@ -18974,6 +19010,7 @@ package android.location {
    method public void setTestProviderEnabled(java.lang.String, boolean);
    method public void setTestProviderLocation(java.lang.String, android.location.Location);
    method public void setTestProviderStatus(java.lang.String, int, android.os.Bundle, long);
    method public void unregisterGnssStatusCallback(android.location.GnssStatusCallback);
    field public static final java.lang.String GPS_PROVIDER = "gps";
    field public static final java.lang.String KEY_LOCATION_CHANGED = "location";
    field public static final java.lang.String KEY_PROVIDER_ENABLED = "providerEnabled";
+42 −5
Original line number Diff line number Diff line
@@ -19843,6 +19843,37 @@ package android.location {
    method public static boolean isPresent();
  }
  public abstract interface GnssNmeaListener {
    method public abstract void onNmeaReceived(long, java.lang.String);
  }
  public final class GnssStatus {
    method public float getAzimuth(int);
    method public int getConstellationType(int);
    method public float getElevation(int);
    method public int getNumSatellites();
    method public int getPrn(int);
    method public float getSnr(int);
    method public boolean hasAlmanac(int);
    method public boolean hasEphemeris(int);
    method public boolean usedInFix(int);
    field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
    field public static final int CONSTELLATION_GALILEO = 6; // 0x6
    field public static final int CONSTELLATION_GLONASS = 3; // 0x3
    field public static final int CONSTELLATION_GPS = 1; // 0x1
    field public static final int CONSTELLATION_QZSS = 4; // 0x4
    field public static final int CONSTELLATION_SBAS = 2; // 0x2
    field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
  }
  public abstract class GnssStatusCallback {
    ctor public GnssStatusCallback();
    method public void onFirstFix(int);
    method public void onSatelliteStatusChanged(android.location.GnssStatus);
    method public void onStarted();
    method public void onStopped();
  }
  public class GpsClock implements android.os.Parcelable {
    method public int describeContents();
    method public double getBiasInNs();
@@ -20174,8 +20205,10 @@ package android.location {
  public class LocationManager {
    method public boolean addGpsMeasurementListener(android.location.GpsMeasurementsEvent.Listener);
    method public boolean addGpsNavigationMessageListener(android.location.GpsNavigationMessageEvent.Listener);
    method public boolean addGpsStatusListener(android.location.GpsStatus.Listener);
    method public boolean addNmeaListener(android.location.GpsStatus.NmeaListener);
    method public deprecated boolean addGpsStatusListener(android.location.GpsStatus.Listener);
    method public deprecated boolean addNmeaListener(android.location.GpsStatus.NmeaListener);
    method public boolean addNmeaListener(android.location.GnssNmeaListener);
    method public boolean addNmeaListener(android.location.GnssNmeaListener, android.os.Handler);
    method public void addProximityAlert(double, double, float, long, android.app.PendingIntent);
    method public void addTestProvider(java.lang.String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, int, int);
    method public void clearTestProviderEnabled(java.lang.String);
@@ -20183,16 +20216,19 @@ package android.location {
    method public void clearTestProviderStatus(java.lang.String);
    method public java.util.List<java.lang.String> getAllProviders();
    method public java.lang.String getBestProvider(android.location.Criteria, boolean);
    method public android.location.GpsStatus getGpsStatus(android.location.GpsStatus);
    method public deprecated android.location.GpsStatus getGpsStatus(android.location.GpsStatus);
    method public android.location.Location getLastKnownLocation(java.lang.String);
    method public android.location.LocationProvider getProvider(java.lang.String);
    method public java.util.List<java.lang.String> getProviders(boolean);
    method public java.util.List<java.lang.String> getProviders(android.location.Criteria, boolean);
    method public boolean isProviderEnabled(java.lang.String);
    method public boolean registerGnssStatusCallback(android.location.GnssStatusCallback);
    method public boolean registerGnssStatusCallback(android.location.GnssStatusCallback, android.os.Handler);
    method public void removeGpsMeasurementListener(android.location.GpsMeasurementsEvent.Listener);
    method public void removeGpsNavigationMessageListener(android.location.GpsNavigationMessageEvent.Listener);
    method public void removeGpsStatusListener(android.location.GpsStatus.Listener);
    method public void removeNmeaListener(android.location.GpsStatus.NmeaListener);
    method public deprecated void removeGpsStatusListener(android.location.GpsStatus.Listener);
    method public deprecated void removeNmeaListener(android.location.GpsStatus.NmeaListener);
    method public void removeNmeaListener(android.location.GnssNmeaListener);
    method public void removeProximityAlert(android.app.PendingIntent);
    method public void removeTestProvider(java.lang.String);
    method public void removeUpdates(android.location.LocationListener);
@@ -20212,6 +20248,7 @@ package android.location {
    method public void setTestProviderEnabled(java.lang.String, boolean);
    method public void setTestProviderLocation(java.lang.String, android.location.Location);
    method public void setTestProviderStatus(java.lang.String, int, android.os.Bundle, long);
    method public void unregisterGnssStatusCallback(android.location.GnssStatusCallback);
    field public static final java.lang.String GPS_PROVIDER = "gps";
    field public static final java.lang.String KEY_LOCATION_CHANGED = "location";
    field public static final java.lang.String KEY_PROVIDER_ENABLED = "providerEnabled";
+42 −5
Original line number Diff line number Diff line
@@ -18856,6 +18856,37 @@ package android.location {
    method public static boolean isPresent();
  }
  public abstract interface GnssNmeaListener {
    method public abstract void onNmeaReceived(long, java.lang.String);
  }
  public final class GnssStatus {
    method public float getAzimuth(int);
    method public int getConstellationType(int);
    method public float getElevation(int);
    method public int getNumSatellites();
    method public int getPrn(int);
    method public float getSnr(int);
    method public boolean hasAlmanac(int);
    method public boolean hasEphemeris(int);
    method public boolean usedInFix(int);
    field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
    field public static final int CONSTELLATION_GALILEO = 6; // 0x6
    field public static final int CONSTELLATION_GLONASS = 3; // 0x3
    field public static final int CONSTELLATION_GPS = 1; // 0x1
    field public static final int CONSTELLATION_QZSS = 4; // 0x4
    field public static final int CONSTELLATION_SBAS = 2; // 0x2
    field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
  }
  public abstract class GnssStatusCallback {
    ctor public GnssStatusCallback();
    method public void onFirstFix(int);
    method public void onSatelliteStatusChanged(android.location.GnssStatus);
    method public void onStarted();
    method public void onStopped();
  }
  public final class GpsSatellite {
    method public float getAzimuth();
    method public float getElevation();
@@ -18940,8 +18971,10 @@ package android.location {
  }
  public class LocationManager {
    method public boolean addGpsStatusListener(android.location.GpsStatus.Listener);
    method public boolean addNmeaListener(android.location.GpsStatus.NmeaListener);
    method public deprecated boolean addGpsStatusListener(android.location.GpsStatus.Listener);
    method public deprecated boolean addNmeaListener(android.location.GpsStatus.NmeaListener);
    method public boolean addNmeaListener(android.location.GnssNmeaListener);
    method public boolean addNmeaListener(android.location.GnssNmeaListener, android.os.Handler);
    method public void addProximityAlert(double, double, float, long, android.app.PendingIntent);
    method public void addTestProvider(java.lang.String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, int, int);
    method public void clearTestProviderEnabled(java.lang.String);
@@ -18949,14 +18982,17 @@ package android.location {
    method public void clearTestProviderStatus(java.lang.String);
    method public java.util.List<java.lang.String> getAllProviders();
    method public java.lang.String getBestProvider(android.location.Criteria, boolean);
    method public android.location.GpsStatus getGpsStatus(android.location.GpsStatus);
    method public deprecated android.location.GpsStatus getGpsStatus(android.location.GpsStatus);
    method public android.location.Location getLastKnownLocation(java.lang.String);
    method public android.location.LocationProvider getProvider(java.lang.String);
    method public java.util.List<java.lang.String> getProviders(boolean);
    method public java.util.List<java.lang.String> getProviders(android.location.Criteria, boolean);
    method public boolean isProviderEnabled(java.lang.String);
    method public void removeGpsStatusListener(android.location.GpsStatus.Listener);
    method public void removeNmeaListener(android.location.GpsStatus.NmeaListener);
    method public boolean registerGnssStatusCallback(android.location.GnssStatusCallback);
    method public boolean registerGnssStatusCallback(android.location.GnssStatusCallback, android.os.Handler);
    method public deprecated void removeGpsStatusListener(android.location.GpsStatus.Listener);
    method public deprecated void removeNmeaListener(android.location.GpsStatus.NmeaListener);
    method public void removeNmeaListener(android.location.GnssNmeaListener);
    method public void removeProximityAlert(android.app.PendingIntent);
    method public void removeTestProvider(java.lang.String);
    method public void removeUpdates(android.location.LocationListener);
@@ -18974,6 +19010,7 @@ package android.location {
    method public void setTestProviderEnabled(java.lang.String, boolean);
    method public void setTestProviderLocation(java.lang.String, android.location.Location);
    method public void setTestProviderStatus(java.lang.String, int, android.os.Bundle, long);
    method public void unregisterGnssStatusCallback(android.location.GnssStatusCallback);
    field public static final java.lang.String GPS_PROVIDER = "gps";
    field public static final java.lang.String KEY_LOCATION_CHANGED = "location";
    field public static final java.lang.String KEY_PROVIDER_ENABLED = "providerEnabled";
+2 −2
Original line number Diff line number Diff line
@@ -1058,7 +1058,7 @@ public class ConnectivityManager {
            return TYPE_NONE;
        }

        // Do this only for SUPL, until GpsLocationProvider is fixed. http://b/25876485 .
        // Do this only for SUPL, until GnssLocationProvider is fixed. http://b/25876485 .
        if (!netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_SUPL)) {
            // NOTE: if this causes app breakage, we should not just comment out this early return;
            // instead, we should make this early return conditional on the requesting app's target
@@ -2938,7 +2938,7 @@ public class ConnectivityManager {

    // Checks whether the calling app can use the legacy routing API (startUsingNetworkFeature,
    // stopUsingNetworkFeature, requestRouteToHost), and if not throw UnsupportedOperationException.
    // TODO: convert the existing system users (Tethering, GpsLocationProvider) to the new APIs and
    // TODO: convert the existing system users (Tethering, GnssLocationProvider) to the new APIs and
    // remove these exemptions. Note that this check is not secure, and apps can still access these
    // functions by accessing ConnectivityService directly. However, it should be clear that doing
    // so is unsupported and may break in the future. http://b/22728205
Loading