Remove deprecated GNSS APIs + add nullability
Cleans up location APIs by removing old deprecated APIs (deprecated since API 24) and adding nullability annotations everywhere. Bug:126698813,126701422,126702274 Test: built Change-Id: I6caf7f9778100bb3eee53178c25ce1694fb2d395
This commit is contained in:
105
api/current.txt
105
api/current.txt
@@ -22825,24 +22825,6 @@ package android.location {
|
||||
method @Deprecated public boolean usedInFix();
|
||||
}
|
||||
|
||||
@Deprecated public final class GpsStatus {
|
||||
method @Deprecated public int getMaxSatellites();
|
||||
method @Deprecated public Iterable<android.location.GpsSatellite> getSatellites();
|
||||
method @Deprecated public int getTimeToFirstFix();
|
||||
field @Deprecated public static final int GPS_EVENT_FIRST_FIX = 3; // 0x3
|
||||
field @Deprecated public static final int GPS_EVENT_SATELLITE_STATUS = 4; // 0x4
|
||||
field @Deprecated public static final int GPS_EVENT_STARTED = 1; // 0x1
|
||||
field @Deprecated public static final int GPS_EVENT_STOPPED = 2; // 0x2
|
||||
}
|
||||
|
||||
@Deprecated public static interface GpsStatus.Listener {
|
||||
method @Deprecated public void onGpsStatusChanged(int);
|
||||
}
|
||||
|
||||
@Deprecated public static interface GpsStatus.NmeaListener {
|
||||
method @Deprecated public void onNmeaReceived(long, String);
|
||||
}
|
||||
|
||||
public class Location implements android.os.Parcelable {
|
||||
ctor public Location(String);
|
||||
ctor public Location(android.location.Location);
|
||||
@@ -22911,55 +22893,50 @@ package android.location {
|
||||
}
|
||||
|
||||
public class LocationManager {
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean addGpsStatusListener(android.location.GpsStatus.Listener);
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean addNmeaListener(android.location.GpsStatus.NmeaListener);
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean addNmeaListener(android.location.OnNmeaMessageListener);
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean addNmeaListener(android.location.OnNmeaMessageListener, android.os.Handler);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void addProximityAlert(double, double, float, long, android.app.PendingIntent);
|
||||
method public void addTestProvider(String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, int, int);
|
||||
method @Deprecated public void clearTestProviderEnabled(String);
|
||||
method @Deprecated public void clearTestProviderLocation(String);
|
||||
method @Deprecated public void clearTestProviderStatus(String);
|
||||
method public java.util.List<java.lang.String> getAllProviders();
|
||||
method public String getBestProvider(android.location.Criteria, boolean);
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean addNmeaListener(@NonNull android.location.OnNmeaMessageListener);
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean addNmeaListener(@NonNull android.location.OnNmeaMessageListener, @Nullable android.os.Handler);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void addProximityAlert(double, double, float, long, @NonNull android.app.PendingIntent);
|
||||
method public void addTestProvider(@NonNull String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, int, int);
|
||||
method @Deprecated public void clearTestProviderEnabled(@NonNull String);
|
||||
method @Deprecated public void clearTestProviderLocation(@NonNull String);
|
||||
method @Deprecated public void clearTestProviderStatus(@NonNull String);
|
||||
method @NonNull public java.util.List<java.lang.String> getAllProviders();
|
||||
method @Nullable public String getBestProvider(@NonNull android.location.Criteria, boolean);
|
||||
method @Nullable public String getGnssHardwareModelName();
|
||||
method public int getGnssYearOfHardware();
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public android.location.GpsStatus getGpsStatus(android.location.GpsStatus);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public android.location.Location getLastKnownLocation(String);
|
||||
method public android.location.LocationProvider getProvider(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 @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) @Nullable public android.location.Location getLastKnownLocation(@NonNull String);
|
||||
method @Nullable public android.location.LocationProvider getProvider(@NonNull String);
|
||||
method @NonNull public java.util.List<java.lang.String> getProviders(boolean);
|
||||
method @NonNull public java.util.List<java.lang.String> getProviders(@NonNull android.location.Criteria, boolean);
|
||||
method public boolean isLocationEnabled();
|
||||
method public boolean isProviderEnabled(String);
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean registerGnssMeasurementsCallback(android.location.GnssMeasurementsEvent.Callback);
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean registerGnssMeasurementsCallback(android.location.GnssMeasurementsEvent.Callback, android.os.Handler);
|
||||
method public boolean registerGnssNavigationMessageCallback(android.location.GnssNavigationMessage.Callback);
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean registerGnssNavigationMessageCallback(android.location.GnssNavigationMessage.Callback, android.os.Handler);
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean registerGnssStatusCallback(android.location.GnssStatus.Callback);
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean registerGnssStatusCallback(android.location.GnssStatus.Callback, android.os.Handler);
|
||||
method @Deprecated public void removeGpsStatusListener(android.location.GpsStatus.Listener);
|
||||
method @Deprecated public void removeNmeaListener(android.location.GpsStatus.NmeaListener);
|
||||
method public void removeNmeaListener(android.location.OnNmeaMessageListener);
|
||||
method @RequiresPermission(anyOf={"android.permission.ACCESS_COARSE_LOCATION", "android.permission.ACCESS_FINE_LOCATION"}, apis="..22") public void removeProximityAlert(android.app.PendingIntent);
|
||||
method public void removeTestProvider(String);
|
||||
method @RequiresPermission(anyOf={"android.permission.ACCESS_COARSE_LOCATION", "android.permission.ACCESS_FINE_LOCATION"}, apis="..22") public void removeUpdates(android.location.LocationListener);
|
||||
method public void removeUpdates(android.app.PendingIntent);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(String, long, float, android.location.LocationListener);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(String, long, float, android.location.LocationListener, android.os.Looper);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(long, float, android.location.Criteria, android.location.LocationListener, android.os.Looper);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(String, long, float, android.app.PendingIntent);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(long, float, android.location.Criteria, android.app.PendingIntent);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestSingleUpdate(String, android.location.LocationListener, android.os.Looper);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestSingleUpdate(android.location.Criteria, android.location.LocationListener, android.os.Looper);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestSingleUpdate(String, android.app.PendingIntent);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestSingleUpdate(android.location.Criteria, android.app.PendingIntent);
|
||||
method public boolean sendExtraCommand(String, String, android.os.Bundle);
|
||||
method public void setTestProviderEnabled(String, boolean);
|
||||
method public void setTestProviderLocation(String, android.location.Location);
|
||||
method @Deprecated public void setTestProviderStatus(String, int, android.os.Bundle, long);
|
||||
method public void unregisterGnssMeasurementsCallback(android.location.GnssMeasurementsEvent.Callback);
|
||||
method public void unregisterGnssNavigationMessageCallback(android.location.GnssNavigationMessage.Callback);
|
||||
method public void unregisterGnssStatusCallback(android.location.GnssStatus.Callback);
|
||||
method public boolean isProviderEnabled(@NonNull String);
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean registerGnssMeasurementsCallback(@NonNull android.location.GnssMeasurementsEvent.Callback);
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean registerGnssMeasurementsCallback(@NonNull android.location.GnssMeasurementsEvent.Callback, @Nullable android.os.Handler);
|
||||
method public boolean registerGnssNavigationMessageCallback(@NonNull android.location.GnssNavigationMessage.Callback);
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean registerGnssNavigationMessageCallback(@NonNull android.location.GnssNavigationMessage.Callback, @Nullable android.os.Handler);
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean registerGnssStatusCallback(@NonNull android.location.GnssStatus.Callback);
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean registerGnssStatusCallback(@NonNull android.location.GnssStatus.Callback, @Nullable android.os.Handler);
|
||||
method public void removeNmeaListener(@NonNull android.location.OnNmeaMessageListener);
|
||||
method @RequiresPermission(anyOf={"android.permission.ACCESS_COARSE_LOCATION", "android.permission.ACCESS_FINE_LOCATION"}, apis="..22") public void removeProximityAlert(@NonNull android.app.PendingIntent);
|
||||
method public void removeTestProvider(@NonNull String);
|
||||
method @RequiresPermission(anyOf={"android.permission.ACCESS_COARSE_LOCATION", "android.permission.ACCESS_FINE_LOCATION"}, apis="..22") public void removeUpdates(@NonNull android.location.LocationListener);
|
||||
method public void removeUpdates(@NonNull android.app.PendingIntent);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@NonNull String, long, float, @NonNull android.location.LocationListener);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@NonNull String, long, float, @NonNull android.location.LocationListener, @Nullable android.os.Looper);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(long, float, @NonNull android.location.Criteria, @NonNull android.location.LocationListener, @Nullable android.os.Looper);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@NonNull String, long, float, @NonNull android.app.PendingIntent);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(long, float, @NonNull android.location.Criteria, @NonNull android.app.PendingIntent);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestSingleUpdate(@NonNull String, @NonNull android.location.LocationListener, @Nullable android.os.Looper);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestSingleUpdate(@NonNull android.location.Criteria, @NonNull android.location.LocationListener, @Nullable android.os.Looper);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestSingleUpdate(@NonNull String, @NonNull android.app.PendingIntent);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestSingleUpdate(@NonNull android.location.Criteria, @NonNull android.app.PendingIntent);
|
||||
method public boolean sendExtraCommand(@NonNull String, @NonNull String, @Nullable android.os.Bundle);
|
||||
method public void setTestProviderEnabled(@NonNull String, boolean);
|
||||
method public void setTestProviderLocation(@NonNull String, @NonNull android.location.Location);
|
||||
method @Deprecated public void setTestProviderStatus(@NonNull String, int, @Nullable android.os.Bundle, long);
|
||||
method public void unregisterGnssMeasurementsCallback(@NonNull android.location.GnssMeasurementsEvent.Callback);
|
||||
method public void unregisterGnssNavigationMessageCallback(@NonNull android.location.GnssNavigationMessage.Callback);
|
||||
method public void unregisterGnssStatusCallback(@NonNull android.location.GnssStatus.Callback);
|
||||
field public static final String GPS_PROVIDER = "gps";
|
||||
field public static final String KEY_LOCATION_CHANGED = "location";
|
||||
field public static final String KEY_PROVIDER_ENABLED = "providerEnabled";
|
||||
|
||||
@@ -282,12 +282,38 @@ package android.hardware {
|
||||
|
||||
package android.location {
|
||||
|
||||
@Deprecated public final class GpsStatus {
|
||||
method public int getMaxSatellites();
|
||||
method public Iterable<android.location.GpsSatellite> getSatellites();
|
||||
method public int getTimeToFirstFix();
|
||||
field public static final int GPS_EVENT_FIRST_FIX = 3; // 0x3
|
||||
field public static final int GPS_EVENT_SATELLITE_STATUS = 4; // 0x4
|
||||
field public static final int GPS_EVENT_STARTED = 1; // 0x1
|
||||
field public static final int GPS_EVENT_STOPPED = 2; // 0x2
|
||||
}
|
||||
|
||||
@Deprecated public static interface GpsStatus.Listener {
|
||||
method public void onGpsStatusChanged(int);
|
||||
}
|
||||
|
||||
@Deprecated public static interface GpsStatus.NmeaListener {
|
||||
method public void onNmeaReceived(long, String);
|
||||
}
|
||||
|
||||
public class Location implements android.os.Parcelable {
|
||||
method @Deprecated public void removeBearingAccuracy();
|
||||
method @Deprecated public void removeSpeedAccuracy();
|
||||
method @Deprecated public void removeVerticalAccuracy();
|
||||
}
|
||||
|
||||
public class LocationManager {
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean addGpsStatusListener(android.location.GpsStatus.Listener);
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean addNmeaListener(android.location.GpsStatus.NmeaListener);
|
||||
method @Deprecated @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public android.location.GpsStatus getGpsStatus(@Nullable android.location.GpsStatus);
|
||||
method @Deprecated public void removeGpsStatusListener(android.location.GpsStatus.Listener);
|
||||
method @Deprecated public void removeNmeaListener(android.location.GpsStatus.NmeaListener);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
package android.media {
|
||||
|
||||
@@ -3364,57 +3364,53 @@ package android.location {
|
||||
}
|
||||
|
||||
public class LocationManager {
|
||||
method @Deprecated public boolean addGpsMeasurementListener(android.location.GpsMeasurementsEvent.Listener);
|
||||
method @Deprecated public boolean addGpsNavigationMessageListener(android.location.GpsNavigationMessageEvent.Listener);
|
||||
method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void flushGnssBatch();
|
||||
method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public int getGnssBatchSize();
|
||||
method public int getGnssCapabilities();
|
||||
method @Nullable public String getLocationControllerExtraPackage();
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public void injectGnssMeasurementCorrections(@NonNull android.location.GnssMeasurementCorrections);
|
||||
method public boolean isLocationControllerExtraPackageEnabled();
|
||||
method public boolean isLocationEnabledForUser(android.os.UserHandle);
|
||||
method public boolean isProviderEnabledForUser(String, android.os.UserHandle);
|
||||
method public boolean isProviderPackage(String);
|
||||
method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean registerGnssBatchedLocationCallback(long, boolean, android.location.BatchedLocationCallback, android.os.Handler);
|
||||
method @Deprecated public void removeGpsMeasurementListener(android.location.GpsMeasurementsEvent.Listener);
|
||||
method @Deprecated public void removeGpsNavigationMessageListener(android.location.GpsNavigationMessageEvent.Listener);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(android.location.LocationRequest, android.location.LocationListener, android.os.Looper);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(android.location.LocationRequest, android.app.PendingIntent);
|
||||
method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void setLocationControllerExtraPackage(String);
|
||||
method public boolean isLocationEnabledForUser(@NonNull android.os.UserHandle);
|
||||
method public boolean isProviderEnabledForUser(@NonNull String, @NonNull android.os.UserHandle);
|
||||
method public boolean isProviderPackage(@NonNull String);
|
||||
method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean registerGnssBatchedLocationCallback(long, boolean, @NonNull android.location.BatchedLocationCallback, @Nullable android.os.Handler);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@NonNull android.location.LocationRequest, @NonNull android.location.LocationListener, @Nullable android.os.Looper);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@NonNull android.location.LocationRequest, @NonNull android.app.PendingIntent);
|
||||
method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void setLocationControllerExtraPackage(@NonNull String);
|
||||
method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void setLocationControllerExtraPackageEnabled(boolean);
|
||||
method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setLocationEnabledForUser(boolean, android.os.UserHandle);
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean setProviderEnabledForUser(String, boolean, android.os.UserHandle);
|
||||
method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean unregisterGnssBatchedLocationCallback(android.location.BatchedLocationCallback);
|
||||
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 @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean unregisterGnssBatchedLocationCallback(@NonNull android.location.BatchedLocationCallback);
|
||||
}
|
||||
|
||||
public final class LocationRequest implements android.os.Parcelable {
|
||||
method public static android.location.LocationRequest create();
|
||||
method public static android.location.LocationRequest createFromDeprecatedCriteria(android.location.Criteria, long, float, boolean);
|
||||
method public static android.location.LocationRequest createFromDeprecatedProvider(String, long, float, boolean);
|
||||
method @NonNull public static android.location.LocationRequest create();
|
||||
method @NonNull public static android.location.LocationRequest createFromDeprecatedCriteria(@NonNull android.location.Criteria, long, float, boolean);
|
||||
method @NonNull public static android.location.LocationRequest createFromDeprecatedProvider(@NonNull String, long, float, boolean);
|
||||
method public int describeContents();
|
||||
method public long getExpireAt();
|
||||
method public long getFastestInterval();
|
||||
method public boolean getHideFromAppOps();
|
||||
method public long getInterval();
|
||||
method public int getNumUpdates();
|
||||
method public String getProvider();
|
||||
method @NonNull public String getProvider();
|
||||
method public int getQuality();
|
||||
method public float getSmallestDisplacement();
|
||||
method public android.os.WorkSource getWorkSource();
|
||||
method @Nullable public android.os.WorkSource getWorkSource();
|
||||
method public boolean isLocationSettingsIgnored();
|
||||
method public boolean isLowPowerMode();
|
||||
method public android.location.LocationRequest setExpireAt(long);
|
||||
method public android.location.LocationRequest setExpireIn(long);
|
||||
method public android.location.LocationRequest setFastestInterval(long);
|
||||
method @NonNull public android.location.LocationRequest setExpireAt(long);
|
||||
method @NonNull public android.location.LocationRequest setExpireIn(long);
|
||||
method @NonNull public android.location.LocationRequest setFastestInterval(long);
|
||||
method public void setHideFromAppOps(boolean);
|
||||
method public android.location.LocationRequest setInterval(long);
|
||||
method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public android.location.LocationRequest setLocationSettingsIgnored(boolean);
|
||||
method public android.location.LocationRequest setLowPowerMode(boolean);
|
||||
method public android.location.LocationRequest setNumUpdates(int);
|
||||
method public android.location.LocationRequest setProvider(String);
|
||||
method public android.location.LocationRequest setQuality(int);
|
||||
method public android.location.LocationRequest setSmallestDisplacement(float);
|
||||
method public void setWorkSource(android.os.WorkSource);
|
||||
method @NonNull public android.location.LocationRequest setInterval(long);
|
||||
method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) @NonNull public android.location.LocationRequest setLocationSettingsIgnored(boolean);
|
||||
method @NonNull public android.location.LocationRequest setLowPowerMode(boolean);
|
||||
method @NonNull public android.location.LocationRequest setNumUpdates(int);
|
||||
method @NonNull public android.location.LocationRequest setProvider(@NonNull String);
|
||||
method @NonNull public android.location.LocationRequest setQuality(int);
|
||||
method @NonNull public android.location.LocationRequest setSmallestDisplacement(float);
|
||||
method public void setWorkSource(@Nullable android.os.WorkSource);
|
||||
method public void writeToParcel(android.os.Parcel, int);
|
||||
field public static final int ACCURACY_BLOCK = 102; // 0x66
|
||||
field public static final int ACCURACY_CITY = 104; // 0x68
|
||||
|
||||
@@ -60,6 +60,17 @@ package android.content {
|
||||
|
||||
}
|
||||
|
||||
package android.location {
|
||||
|
||||
public class LocationManager {
|
||||
method @Deprecated public boolean addGpsMeasurementListener(android.location.GpsMeasurementsEvent.Listener);
|
||||
method @Deprecated public boolean addGpsNavigationMessageListener(android.location.GpsNavigationMessageEvent.Listener);
|
||||
method @Deprecated public void removeGpsMeasurementListener(android.location.GpsMeasurementsEvent.Listener);
|
||||
method @Deprecated public void removeGpsNavigationMessageListener(android.location.GpsNavigationMessageEvent.Listener);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
package android.media.tv {
|
||||
|
||||
public final class TvInputManager {
|
||||
|
||||
@@ -936,16 +936,16 @@ package android.location {
|
||||
}
|
||||
|
||||
public class LocationManager {
|
||||
method public String[] getBackgroundThrottlingWhitelist();
|
||||
method public String[] getIgnoreSettingsWhitelist();
|
||||
method @NonNull public String[] getBackgroundThrottlingWhitelist();
|
||||
method @NonNull public String[] getIgnoreSettingsWhitelist();
|
||||
method @NonNull public java.util.List<android.location.LocationRequest> getTestProviderCurrentRequests(String);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(android.location.LocationRequest, android.location.LocationListener, android.os.Looper);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(android.location.LocationRequest, android.app.PendingIntent);
|
||||
method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setLocationEnabledForUser(boolean, android.os.UserHandle);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@NonNull android.location.LocationRequest, @NonNull android.location.LocationListener, @Nullable android.os.Looper);
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@NonNull android.location.LocationRequest, @NonNull android.app.PendingIntent);
|
||||
method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setLocationEnabledForUser(boolean, @NonNull android.os.UserHandle);
|
||||
}
|
||||
|
||||
public final class LocationRequest implements android.os.Parcelable {
|
||||
method public static android.location.LocationRequest create();
|
||||
method @NonNull public static android.location.LocationRequest create();
|
||||
method public int describeContents();
|
||||
method public long getExpireAt();
|
||||
method public long getFastestInterval();
|
||||
@@ -953,14 +953,14 @@ package android.location {
|
||||
method public int getNumUpdates();
|
||||
method public int getQuality();
|
||||
method public boolean isLocationSettingsIgnored();
|
||||
method public android.location.LocationRequest setExpireAt(long);
|
||||
method public android.location.LocationRequest setExpireIn(long);
|
||||
method public android.location.LocationRequest setFastestInterval(long);
|
||||
method public android.location.LocationRequest setInterval(long);
|
||||
method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public android.location.LocationRequest setLocationSettingsIgnored(boolean);
|
||||
method public android.location.LocationRequest setNumUpdates(int);
|
||||
method public android.location.LocationRequest setProvider(String);
|
||||
method public android.location.LocationRequest setQuality(int);
|
||||
method @NonNull public android.location.LocationRequest setExpireAt(long);
|
||||
method @NonNull public android.location.LocationRequest setExpireIn(long);
|
||||
method @NonNull public android.location.LocationRequest setFastestInterval(long);
|
||||
method @NonNull public android.location.LocationRequest setInterval(long);
|
||||
method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) @NonNull public android.location.LocationRequest setLocationSettingsIgnored(boolean);
|
||||
method @NonNull public android.location.LocationRequest setNumUpdates(int);
|
||||
method @NonNull public android.location.LocationRequest setProvider(@NonNull String);
|
||||
method @NonNull public android.location.LocationRequest setQuality(int);
|
||||
method public void writeToParcel(android.os.Parcel, int);
|
||||
field public static final int ACCURACY_BLOCK = 102; // 0x66
|
||||
field public static final int ACCURACY_CITY = 104; // 0x68
|
||||
|
||||
@@ -30,6 +30,7 @@ import java.util.NoSuchElementException;
|
||||
* <p>This class is used in conjunction with the {@link Listener} interface.
|
||||
*
|
||||
* @deprecated use {@link GnssStatus} and {@link GnssStatus.Callback}.
|
||||
* @removed
|
||||
*/
|
||||
@Deprecated
|
||||
public final class GpsStatus {
|
||||
@@ -112,6 +113,7 @@ public final class GpsStatus {
|
||||
/**
|
||||
* Used for receiving notifications when GPS status has changed.
|
||||
* @deprecated use {@link GnssStatus.Callback} instead.
|
||||
* @removed
|
||||
*/
|
||||
@Deprecated
|
||||
public interface Listener {
|
||||
@@ -142,6 +144,7 @@ public final class GpsStatus {
|
||||
* You can implement this interface and call {@link LocationManager#addNmeaListener}
|
||||
* to receive NMEA data from the GPS engine.
|
||||
* @deprecated use {@link OnNmeaMessageListener} instead.
|
||||
* @removed
|
||||
*/
|
||||
@Deprecated
|
||||
public interface NmeaListener {
|
||||
|
||||
@@ -44,12 +44,12 @@ import android.os.Process;
|
||||
import android.os.RemoteException;
|
||||
import android.os.UserHandle;
|
||||
import android.provider.Settings;
|
||||
import android.util.ArrayMap;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.internal.location.ProviderProperties;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -78,14 +78,10 @@ public class LocationManager {
|
||||
private final GnssMeasurementCallbackTransport mGnssMeasurementCallbackTransport;
|
||||
private final GnssNavigationMessageCallbackTransport mGnssNavigationMessageCallbackTransport;
|
||||
private final BatchedLocationCallbackTransport mBatchedLocationCallbackTransport;
|
||||
private final HashMap<GpsStatus.Listener, GnssStatusListenerTransport> mGpsStatusListeners =
|
||||
new HashMap<>();
|
||||
private final HashMap<GpsStatus.NmeaListener, GnssStatusListenerTransport> mGpsNmeaListeners =
|
||||
new HashMap<>();
|
||||
private final HashMap<GnssStatus.Callback, GnssStatusListenerTransport> mGnssStatusListeners =
|
||||
new HashMap<>();
|
||||
private final HashMap<OnNmeaMessageListener, GnssStatusListenerTransport> mGnssNmeaListeners =
|
||||
new HashMap<>();
|
||||
private final ArrayMap<GnssStatus.Callback, GnssStatusListenerTransport> mGnssStatusListeners =
|
||||
new ArrayMap<>();
|
||||
private final ArrayMap<OnNmeaMessageListener, GnssStatusListenerTransport> mGnssNmeaListeners =
|
||||
new ArrayMap<>();
|
||||
// volatile + GnssStatus final-fields pattern to avoid a partially published object
|
||||
private volatile GnssStatus mGnssStatus;
|
||||
private int mTimeToFirstFix;
|
||||
@@ -293,8 +289,7 @@ public class LocationManager {
|
||||
"com.android.settings.location.FOOTER_STRING";
|
||||
|
||||
// Map from LocationListeners to their associated ListenerTransport objects
|
||||
private final HashMap<LocationListener, ListenerTransport> mListeners =
|
||||
new HashMap<LocationListener,ListenerTransport>();
|
||||
private final ArrayMap<LocationListener, ListenerTransport> mListeners = new ArrayMap<>();
|
||||
|
||||
private class ListenerTransport extends ILocationListener.Stub {
|
||||
private static final int TYPE_LOCATION_CHANGED = 1;
|
||||
@@ -405,7 +400,7 @@ public class LocationManager {
|
||||
* @hide
|
||||
*/
|
||||
@TestApi
|
||||
public String[] getBackgroundThrottlingWhitelist() {
|
||||
public @NonNull String[] getBackgroundThrottlingWhitelist() {
|
||||
try {
|
||||
return mService.getBackgroundThrottlingWhitelist();
|
||||
} catch (RemoteException e) {
|
||||
@@ -417,7 +412,7 @@ public class LocationManager {
|
||||
* @hide
|
||||
*/
|
||||
@TestApi
|
||||
public String[] getIgnoreSettingsWhitelist() {
|
||||
public @NonNull String[] getIgnoreSettingsWhitelist() {
|
||||
try {
|
||||
return mService.getIgnoreSettingsWhitelist();
|
||||
} catch (RemoteException e) {
|
||||
@@ -431,7 +426,7 @@ public class LocationManager {
|
||||
* right way to create an instance of this class is using the
|
||||
* factory Context.getSystemService.
|
||||
*/
|
||||
public LocationManager(Context context, ILocationManager service) {
|
||||
public LocationManager(@NonNull Context context, @NonNull ILocationManager service) {
|
||||
mService = service;
|
||||
mContext = context;
|
||||
mGnssMeasurementCallbackTransport =
|
||||
@@ -454,7 +449,7 @@ public class LocationManager {
|
||||
*
|
||||
* @return list of Strings containing names of the provider
|
||||
*/
|
||||
public List<String> getAllProviders() {
|
||||
public @NonNull List<String> getAllProviders() {
|
||||
try {
|
||||
return mService.getAllProviders();
|
||||
} catch (RemoteException e) {
|
||||
@@ -469,7 +464,7 @@ public class LocationManager {
|
||||
* enabled are returned.
|
||||
* @return list of Strings containing names of the providers
|
||||
*/
|
||||
public List<String> getProviders(boolean enabledOnly) {
|
||||
public @NonNull List<String> getProviders(boolean enabledOnly) {
|
||||
try {
|
||||
return mService.getProviders(null, enabledOnly);
|
||||
} catch (RemoteException e) {
|
||||
@@ -488,7 +483,7 @@ public class LocationManager {
|
||||
* @throws SecurityException if the caller is not permitted to access the
|
||||
* given provider.
|
||||
*/
|
||||
public LocationProvider getProvider(String name) {
|
||||
public @Nullable LocationProvider getProvider(@NonNull String name) {
|
||||
checkProvider(name);
|
||||
try {
|
||||
ProviderProperties properties = mService.getProviderProperties(name);
|
||||
@@ -511,7 +506,7 @@ public class LocationManager {
|
||||
* enabled are returned.
|
||||
* @return list of Strings containing names of the providers
|
||||
*/
|
||||
public List<String> getProviders(Criteria criteria, boolean enabledOnly) {
|
||||
public @NonNull List<String> getProviders(@NonNull Criteria criteria, boolean enabledOnly) {
|
||||
checkCriteria(criteria);
|
||||
try {
|
||||
return mService.getProviders(criteria, enabledOnly);
|
||||
@@ -542,7 +537,7 @@ public class LocationManager {
|
||||
* @param enabledOnly if true then only a provider that is currently enabled is returned
|
||||
* @return name of the provider that best matches the requirements
|
||||
*/
|
||||
public String getBestProvider(Criteria criteria, boolean enabledOnly) {
|
||||
public @Nullable String getBestProvider(@NonNull Criteria criteria, boolean enabledOnly) {
|
||||
checkCriteria(criteria);
|
||||
try {
|
||||
return mService.getBestProvider(criteria, enabledOnly);
|
||||
@@ -572,8 +567,8 @@ public class LocationManager {
|
||||
* @throws SecurityException if no suitable permission is present
|
||||
*/
|
||||
@RequiresPermission(anyOf = {ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION})
|
||||
public void requestLocationUpdates(String provider, long minTime, float minDistance,
|
||||
LocationListener listener) {
|
||||
public void requestLocationUpdates(@NonNull String provider, long minTime, float minDistance,
|
||||
@NonNull LocationListener listener) {
|
||||
checkProvider(provider);
|
||||
checkListener(listener);
|
||||
|
||||
@@ -604,8 +599,8 @@ public class LocationManager {
|
||||
* @throws SecurityException if no suitable permission is present
|
||||
*/
|
||||
@RequiresPermission(anyOf = {ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION})
|
||||
public void requestLocationUpdates(String provider, long minTime, float minDistance,
|
||||
LocationListener listener, Looper looper) {
|
||||
public void requestLocationUpdates(@NonNull String provider, long minTime, float minDistance,
|
||||
@NonNull LocationListener listener, @Nullable Looper looper) {
|
||||
checkProvider(provider);
|
||||
checkListener(listener);
|
||||
|
||||
@@ -637,8 +632,8 @@ public class LocationManager {
|
||||
* @throws SecurityException if no suitable permission is present
|
||||
*/
|
||||
@RequiresPermission(anyOf = {ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION})
|
||||
public void requestLocationUpdates(long minTime, float minDistance, Criteria criteria,
|
||||
LocationListener listener, Looper looper) {
|
||||
public void requestLocationUpdates(long minTime, float minDistance, @NonNull Criteria criteria,
|
||||
@NonNull LocationListener listener, @Nullable Looper looper) {
|
||||
checkCriteria(criteria);
|
||||
checkListener(listener);
|
||||
|
||||
@@ -665,8 +660,8 @@ public class LocationManager {
|
||||
* @throws SecurityException if no suitable permission is present
|
||||
*/
|
||||
@RequiresPermission(anyOf = {ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION})
|
||||
public void requestLocationUpdates(String provider, long minTime, float minDistance,
|
||||
PendingIntent intent) {
|
||||
public void requestLocationUpdates(@NonNull String provider, long minTime, float minDistance,
|
||||
@NonNull PendingIntent intent) {
|
||||
checkProvider(provider);
|
||||
checkPendingIntent(intent);
|
||||
|
||||
@@ -772,8 +767,8 @@ public class LocationManager {
|
||||
* @throws SecurityException if no suitable permission is present
|
||||
*/
|
||||
@RequiresPermission(anyOf = {ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION})
|
||||
public void requestLocationUpdates(long minTime, float minDistance, Criteria criteria,
|
||||
PendingIntent intent) {
|
||||
public void requestLocationUpdates(long minTime, float minDistance, @NonNull Criteria criteria,
|
||||
@NonNull PendingIntent intent) {
|
||||
checkCriteria(criteria);
|
||||
checkPendingIntent(intent);
|
||||
|
||||
@@ -802,7 +797,8 @@ public class LocationManager {
|
||||
* @throws SecurityException if no suitable permission is present
|
||||
*/
|
||||
@RequiresPermission(anyOf = {ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION})
|
||||
public void requestSingleUpdate(String provider, LocationListener listener, Looper looper) {
|
||||
public void requestSingleUpdate(
|
||||
@NonNull String provider, @NonNull LocationListener listener, @Nullable Looper looper) {
|
||||
checkProvider(provider);
|
||||
checkListener(listener);
|
||||
|
||||
@@ -832,7 +828,10 @@ public class LocationManager {
|
||||
* @throws SecurityException if no suitable permission is present
|
||||
*/
|
||||
@RequiresPermission(anyOf = {ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION})
|
||||
public void requestSingleUpdate(Criteria criteria, LocationListener listener, Looper looper) {
|
||||
public void requestSingleUpdate(
|
||||
@NonNull Criteria criteria,
|
||||
@NonNull LocationListener listener,
|
||||
@Nullable Looper looper) {
|
||||
checkCriteria(criteria);
|
||||
checkListener(listener);
|
||||
|
||||
@@ -855,7 +854,7 @@ public class LocationManager {
|
||||
* @throws SecurityException if no suitable permission is present
|
||||
*/
|
||||
@RequiresPermission(anyOf = {ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION})
|
||||
public void requestSingleUpdate(String provider, PendingIntent intent) {
|
||||
public void requestSingleUpdate(@NonNull String provider, @NonNull PendingIntent intent) {
|
||||
checkProvider(provider);
|
||||
checkPendingIntent(intent);
|
||||
|
||||
@@ -879,7 +878,7 @@ public class LocationManager {
|
||||
* @throws SecurityException if no suitable permission is present
|
||||
*/
|
||||
@RequiresPermission(anyOf = {ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION})
|
||||
public void requestSingleUpdate(Criteria criteria, PendingIntent intent) {
|
||||
public void requestSingleUpdate(@NonNull Criteria criteria, @NonNull PendingIntent intent) {
|
||||
checkCriteria(criteria);
|
||||
checkPendingIntent(intent);
|
||||
|
||||
@@ -948,8 +947,10 @@ public class LocationManager {
|
||||
@SystemApi
|
||||
@TestApi
|
||||
@RequiresPermission(anyOf = {ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION})
|
||||
public void requestLocationUpdates(LocationRequest request, LocationListener listener,
|
||||
Looper looper) {
|
||||
public void requestLocationUpdates(
|
||||
@NonNull LocationRequest request,
|
||||
@NonNull LocationListener listener,
|
||||
@Nullable Looper looper) {
|
||||
checkListener(listener);
|
||||
requestLocationUpdates(request, listener, looper, null);
|
||||
}
|
||||
@@ -978,7 +979,8 @@ public class LocationManager {
|
||||
@SystemApi
|
||||
@TestApi
|
||||
@RequiresPermission(anyOf = {ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION})
|
||||
public void requestLocationUpdates(LocationRequest request, PendingIntent intent) {
|
||||
public void requestLocationUpdates(
|
||||
@NonNull LocationRequest request, @NonNull PendingIntent intent) {
|
||||
checkPendingIntent(intent);
|
||||
requestLocationUpdates(request, null, null, intent);
|
||||
}
|
||||
@@ -1003,7 +1005,7 @@ public class LocationManager {
|
||||
* @hide
|
||||
*/
|
||||
@RequiresPermission(allOf = {LOCATION_HARDWARE, ACCESS_FINE_LOCATION})
|
||||
public boolean injectLocation(Location newLocation) {
|
||||
public boolean injectLocation(@NonNull Location newLocation) {
|
||||
try {
|
||||
return mService.injectLocation(newLocation);
|
||||
} catch (RemoteException e) {
|
||||
@@ -1048,7 +1050,7 @@ public class LocationManager {
|
||||
* @param listener listener object that no longer needs location updates
|
||||
* @throws IllegalArgumentException if listener is null
|
||||
*/
|
||||
public void removeUpdates(LocationListener listener) {
|
||||
public void removeUpdates(@NonNull LocationListener listener) {
|
||||
checkListener(listener);
|
||||
String packageName = mContext.getPackageName();
|
||||
|
||||
@@ -1073,7 +1075,7 @@ public class LocationManager {
|
||||
* @param intent pending intent object that no longer needs location updates
|
||||
* @throws IllegalArgumentException if intent is null
|
||||
*/
|
||||
public void removeUpdates(PendingIntent intent) {
|
||||
public void removeUpdates(@NonNull PendingIntent intent) {
|
||||
checkPendingIntent(intent);
|
||||
String packageName = mContext.getPackageName();
|
||||
|
||||
@@ -1133,7 +1135,7 @@ public class LocationManager {
|
||||
*/
|
||||
@RequiresPermission(anyOf = {ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION})
|
||||
public void addProximityAlert(double latitude, double longitude, float radius, long expiration,
|
||||
PendingIntent intent) {
|
||||
@NonNull PendingIntent intent) {
|
||||
checkPendingIntent(intent);
|
||||
if (expiration < 0) expiration = Long.MAX_VALUE;
|
||||
|
||||
@@ -1183,7 +1185,10 @@ public class LocationManager {
|
||||
* @hide
|
||||
*/
|
||||
@RequiresPermission(anyOf = {ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION})
|
||||
public void addGeofence(LocationRequest request, Geofence fence, PendingIntent intent) {
|
||||
public void addGeofence(
|
||||
@NonNull LocationRequest request,
|
||||
@NonNull Geofence fence,
|
||||
@NonNull PendingIntent intent) {
|
||||
checkPendingIntent(intent);
|
||||
checkGeofence(fence);
|
||||
|
||||
@@ -1210,7 +1215,7 @@ public class LocationManager {
|
||||
* @throws SecurityException if {@link android.Manifest.permission#ACCESS_FINE_LOCATION}
|
||||
* permission is not present
|
||||
*/
|
||||
public void removeProximityAlert(PendingIntent intent) {
|
||||
public void removeProximityAlert(@NonNull PendingIntent intent) {
|
||||
checkPendingIntent(intent);
|
||||
String packageName = mContext.getPackageName();
|
||||
|
||||
@@ -1237,7 +1242,7 @@ public class LocationManager {
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public void removeGeofence(Geofence fence, PendingIntent intent) {
|
||||
public void removeGeofence(@NonNull Geofence fence, @NonNull PendingIntent intent) {
|
||||
checkPendingIntent(intent);
|
||||
checkGeofence(fence);
|
||||
String packageName = mContext.getPackageName();
|
||||
@@ -1260,7 +1265,7 @@ public class LocationManager {
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public void removeAllGeofences(PendingIntent intent) {
|
||||
public void removeAllGeofences(@NonNull PendingIntent intent) {
|
||||
checkPendingIntent(intent);
|
||||
String packageName = mContext.getPackageName();
|
||||
|
||||
@@ -1290,7 +1295,7 @@ public class LocationManager {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public boolean isLocationEnabledForUser(UserHandle userHandle) {
|
||||
public boolean isLocationEnabledForUser(@NonNull UserHandle userHandle) {
|
||||
try {
|
||||
return mService.isLocationEnabledForUser(userHandle.getIdentifier());
|
||||
} catch (RemoteException e) {
|
||||
@@ -1309,7 +1314,7 @@ public class LocationManager {
|
||||
@SystemApi
|
||||
@TestApi
|
||||
@RequiresPermission(WRITE_SECURE_SETTINGS)
|
||||
public void setLocationEnabledForUser(boolean enabled, UserHandle userHandle) {
|
||||
public void setLocationEnabledForUser(boolean enabled, @NonNull UserHandle userHandle) {
|
||||
Settings.Secure.putIntForUser(
|
||||
mContext.getContentResolver(),
|
||||
Settings.Secure.LOCATION_MODE,
|
||||
@@ -1332,7 +1337,7 @@ public class LocationManager {
|
||||
*
|
||||
* @throws IllegalArgumentException if provider is null
|
||||
*/
|
||||
public boolean isProviderEnabled(String provider) {
|
||||
public boolean isProviderEnabled(@NonNull String provider) {
|
||||
return isProviderEnabledForUser(provider, Process.myUserHandle());
|
||||
}
|
||||
|
||||
@@ -1353,7 +1358,8 @@ public class LocationManager {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public boolean isProviderEnabledForUser(String provider, UserHandle userHandle) {
|
||||
public boolean isProviderEnabledForUser(
|
||||
@NonNull String provider, @NonNull UserHandle userHandle) {
|
||||
checkProvider(provider);
|
||||
|
||||
try {
|
||||
@@ -1382,7 +1388,7 @@ public class LocationManager {
|
||||
@SystemApi
|
||||
@RequiresPermission(WRITE_SECURE_SETTINGS)
|
||||
public boolean setProviderEnabledForUser(
|
||||
String provider, boolean enabled, UserHandle userHandle) {
|
||||
@NonNull String provider, boolean enabled, @NonNull UserHandle userHandle) {
|
||||
checkProvider(provider);
|
||||
|
||||
return Settings.Secure.setLocationProviderEnabledForUser(
|
||||
@@ -1406,6 +1412,7 @@ public class LocationManager {
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@Nullable
|
||||
public Location getLastLocation() {
|
||||
String packageName = mContext.getPackageName();
|
||||
|
||||
@@ -1434,7 +1441,8 @@ public class LocationManager {
|
||||
* @throws IllegalArgumentException if provider is null or doesn't exist
|
||||
*/
|
||||
@RequiresPermission(anyOf = {ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION})
|
||||
public Location getLastKnownLocation(String provider) {
|
||||
@Nullable
|
||||
public Location getLastKnownLocation(@NonNull String provider) {
|
||||
checkProvider(provider);
|
||||
String packageName = mContext.getPackageName();
|
||||
LocationRequest request = LocationRequest.createFromDeprecatedProvider(
|
||||
@@ -1447,10 +1455,6 @@ public class LocationManager {
|
||||
}
|
||||
}
|
||||
|
||||
// --- Mock provider support ---
|
||||
// TODO: It would be fantastic to deprecate mock providers entirely, and replace
|
||||
// with something closer to LocationProviderBase.java
|
||||
|
||||
/**
|
||||
* Creates a mock location provider and adds it to the set of active providers.
|
||||
*
|
||||
@@ -1461,7 +1465,8 @@ public class LocationManager {
|
||||
* allowed} for your app.
|
||||
* @throws IllegalArgumentException if a provider with the given name already exists
|
||||
*/
|
||||
public void addTestProvider(String name, boolean requiresNetwork, boolean requiresSatellite,
|
||||
public void addTestProvider(
|
||||
@NonNull String name, boolean requiresNetwork, boolean requiresSatellite,
|
||||
boolean requiresCell, boolean hasMonetaryCost, boolean supportsAltitude,
|
||||
boolean supportsSpeed, boolean supportsBearing, int powerRequirement, int accuracy) {
|
||||
ProviderProperties properties = new ProviderProperties(requiresNetwork,
|
||||
@@ -1488,7 +1493,7 @@ public class LocationManager {
|
||||
* allowed} for your app.
|
||||
* @throws IllegalArgumentException if no provider with the given name exists
|
||||
*/
|
||||
public void removeTestProvider(String provider) {
|
||||
public void removeTestProvider(@NonNull String provider) {
|
||||
try {
|
||||
mService.removeTestProvider(provider, mContext.getOpPackageName());
|
||||
} catch (RemoteException e) {
|
||||
@@ -1512,7 +1517,7 @@ public class LocationManager {
|
||||
* @throws IllegalArgumentException if no provider with the given name exists
|
||||
* @throws IllegalArgumentException if the location is incomplete
|
||||
*/
|
||||
public void setTestProviderLocation(String provider, Location loc) {
|
||||
public void setTestProviderLocation(@NonNull String provider, @NonNull Location loc) {
|
||||
if (!loc.isComplete()) {
|
||||
IllegalArgumentException e = new IllegalArgumentException(
|
||||
"Incomplete location object, missing timestamp or accuracy? " + loc);
|
||||
@@ -1546,7 +1551,7 @@ public class LocationManager {
|
||||
* @deprecated This function has always been a no-op, and may be removed in the future.
|
||||
*/
|
||||
@Deprecated
|
||||
public void clearTestProviderLocation(String provider) {}
|
||||
public void clearTestProviderLocation(@NonNull String provider) {}
|
||||
|
||||
/**
|
||||
* Sets a mock enabled value for the given provider. This value will be used in place
|
||||
@@ -1560,7 +1565,7 @@ public class LocationManager {
|
||||
* allowed} for your app.
|
||||
* @throws IllegalArgumentException if no provider with the given name exists
|
||||
*/
|
||||
public void setTestProviderEnabled(String provider, boolean enabled) {
|
||||
public void setTestProviderEnabled(@NonNull String provider, boolean enabled) {
|
||||
try {
|
||||
mService.setTestProviderEnabled(provider, enabled, mContext.getOpPackageName());
|
||||
} catch (RemoteException e) {
|
||||
@@ -1581,7 +1586,7 @@ public class LocationManager {
|
||||
* @deprecated Use {@link #setTestProviderEnabled(String, boolean)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public void clearTestProviderEnabled(String provider) {
|
||||
public void clearTestProviderEnabled(@NonNull String provider) {
|
||||
setTestProviderEnabled(provider, false);
|
||||
}
|
||||
|
||||
@@ -1601,7 +1606,8 @@ public class LocationManager {
|
||||
* @deprecated This method has no effect.
|
||||
*/
|
||||
@Deprecated
|
||||
public void setTestProviderStatus(String provider, int status, Bundle extras, long updateTime) {
|
||||
public void setTestProviderStatus(
|
||||
@NonNull String provider, int status, @Nullable Bundle extras, long updateTime) {
|
||||
try {
|
||||
mService.setTestProviderStatus(provider, status, extras, updateTime,
|
||||
mContext.getOpPackageName());
|
||||
@@ -1622,7 +1628,7 @@ public class LocationManager {
|
||||
* @deprecated This method has no effect.
|
||||
*/
|
||||
@Deprecated
|
||||
public void clearTestProviderStatus(String provider) {
|
||||
public void clearTestProviderStatus(@NonNull String provider) {
|
||||
setTestProviderStatus(provider, LocationProvider.AVAILABLE, null, 0L);
|
||||
}
|
||||
|
||||
@@ -1648,13 +1654,11 @@ public class LocationManager {
|
||||
// This class is used to send Gnss status events to the client's specific thread.
|
||||
private class GnssStatusListenerTransport extends IGnssStatusListener.Stub {
|
||||
|
||||
private final GpsStatus.Listener mGpsListener;
|
||||
private final GpsStatus.NmeaListener mGpsNmeaListener;
|
||||
private final GnssStatus.Callback mGnssCallback;
|
||||
private final OnNmeaMessageListener mGnssNmeaListener;
|
||||
|
||||
private class GnssHandler extends Handler {
|
||||
public GnssHandler(Handler handler) {
|
||||
GnssHandler(Handler handler) {
|
||||
super(handler != null ? handler.getLooper() : Looper.myLooper());
|
||||
}
|
||||
|
||||
@@ -1663,24 +1667,22 @@ public class LocationManager {
|
||||
switch (msg.what) {
|
||||
case NMEA_RECEIVED:
|
||||
synchronized (mNmeaBuffer) {
|
||||
int length = mNmeaBuffer.size();
|
||||
for (int i = 0; i < length; i++) {
|
||||
Nmea nmea = mNmeaBuffer.get(i);
|
||||
for (Nmea nmea : mNmeaBuffer) {
|
||||
mGnssNmeaListener.onNmeaMessage(nmea.mNmea, nmea.mTimestamp);
|
||||
}
|
||||
mNmeaBuffer.clear();
|
||||
}
|
||||
break;
|
||||
case GpsStatus.GPS_EVENT_STARTED:
|
||||
case GNSS_EVENT_STARTED:
|
||||
mGnssCallback.onStarted();
|
||||
break;
|
||||
case GpsStatus.GPS_EVENT_STOPPED:
|
||||
case GNSS_EVENT_STOPPED:
|
||||
mGnssCallback.onStopped();
|
||||
break;
|
||||
case GpsStatus.GPS_EVENT_FIRST_FIX:
|
||||
case GNSS_EVENT_FIRST_FIX:
|
||||
mGnssCallback.onFirstFix(mTimeToFirstFix);
|
||||
break;
|
||||
case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
|
||||
case GNSS_EVENT_SATELLITE_STATUS:
|
||||
mGnssCallback.onSatelliteStatusChanged(mGnssStatus);
|
||||
break;
|
||||
default:
|
||||
@@ -1691,8 +1693,11 @@ public class LocationManager {
|
||||
|
||||
private final Handler mGnssHandler;
|
||||
|
||||
// This must not equal any of the GpsStatus event IDs
|
||||
private static final int NMEA_RECEIVED = 1000;
|
||||
private static final int NMEA_RECEIVED = 1;
|
||||
private static final int GNSS_EVENT_STARTED = 2;
|
||||
private static final int GNSS_EVENT_STOPPED = 3;
|
||||
private static final int GNSS_EVENT_FIRST_FIX = 4;
|
||||
private static final int GNSS_EVENT_SATELLITE_STATUS = 5;
|
||||
|
||||
private class Nmea {
|
||||
long mTimestamp;
|
||||
@@ -1705,98 +1710,31 @@ public class LocationManager {
|
||||
}
|
||||
private final ArrayList<Nmea> mNmeaBuffer;
|
||||
|
||||
GnssStatusListenerTransport(GpsStatus.Listener listener) {
|
||||
this(listener, null);
|
||||
}
|
||||
|
||||
GnssStatusListenerTransport(GpsStatus.Listener listener, Handler handler) {
|
||||
mGpsListener = listener;
|
||||
mGnssHandler = new GnssHandler(handler);
|
||||
mGpsNmeaListener = null;
|
||||
mNmeaBuffer = null;
|
||||
mGnssCallback = mGpsListener != null ? new GnssStatus.Callback() {
|
||||
@Override
|
||||
public void onStarted() {
|
||||
mGpsListener.onGpsStatusChanged(GpsStatus.GPS_EVENT_STARTED);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStopped() {
|
||||
mGpsListener.onGpsStatusChanged(GpsStatus.GPS_EVENT_STOPPED);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFirstFix(int ttff) {
|
||||
mGpsListener.onGpsStatusChanged(GpsStatus.GPS_EVENT_FIRST_FIX);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSatelliteStatusChanged(GnssStatus status) {
|
||||
mGpsListener.onGpsStatusChanged(GpsStatus.GPS_EVENT_SATELLITE_STATUS);
|
||||
}
|
||||
} : null;
|
||||
mGnssNmeaListener = null;
|
||||
}
|
||||
|
||||
GnssStatusListenerTransport(GpsStatus.NmeaListener listener) {
|
||||
this(listener, null);
|
||||
}
|
||||
|
||||
GnssStatusListenerTransport(GpsStatus.NmeaListener listener, Handler handler) {
|
||||
mGpsListener = null;
|
||||
mGnssHandler = new GnssHandler(handler);
|
||||
mGpsNmeaListener = listener;
|
||||
mNmeaBuffer = new ArrayList<Nmea>();
|
||||
mGnssCallback = null;
|
||||
mGnssNmeaListener = mGpsNmeaListener != null ? new OnNmeaMessageListener() {
|
||||
@Override
|
||||
public void onNmeaMessage(String nmea, long timestamp) {
|
||||
mGpsNmeaListener.onNmeaReceived(timestamp, nmea);
|
||||
}
|
||||
} : null;
|
||||
}
|
||||
|
||||
GnssStatusListenerTransport(GnssStatus.Callback callback) {
|
||||
this(callback, null);
|
||||
}
|
||||
|
||||
GnssStatusListenerTransport(GnssStatus.Callback callback, Handler handler) {
|
||||
mGnssCallback = callback;
|
||||
mGnssHandler = new GnssHandler(handler);
|
||||
mGnssNmeaListener = null;
|
||||
mNmeaBuffer = null;
|
||||
mGpsListener = null;
|
||||
mGpsNmeaListener = null;
|
||||
}
|
||||
|
||||
GnssStatusListenerTransport(OnNmeaMessageListener listener) {
|
||||
this(listener, null);
|
||||
}
|
||||
|
||||
GnssStatusListenerTransport(OnNmeaMessageListener listener, Handler handler) {
|
||||
mGnssCallback = null;
|
||||
mGnssHandler = new GnssHandler(handler);
|
||||
mGnssNmeaListener = listener;
|
||||
mGpsListener = null;
|
||||
mGpsNmeaListener = null;
|
||||
mNmeaBuffer = new ArrayList<Nmea>();
|
||||
mNmeaBuffer = new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGnssStarted() {
|
||||
if (mGnssCallback != null) {
|
||||
Message msg = Message.obtain();
|
||||
msg.what = GpsStatus.GPS_EVENT_STARTED;
|
||||
mGnssHandler.sendMessage(msg);
|
||||
mGnssHandler.obtainMessage(GNSS_EVENT_STARTED).sendToTarget();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGnssStopped() {
|
||||
if (mGnssCallback != null) {
|
||||
Message msg = Message.obtain();
|
||||
msg.what = GpsStatus.GPS_EVENT_STOPPED;
|
||||
mGnssHandler.sendMessage(msg);
|
||||
mGnssHandler.obtainMessage(GNSS_EVENT_STOPPED).sendToTarget();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1804,9 +1742,7 @@ public class LocationManager {
|
||||
public void onFirstFix(int ttff) {
|
||||
if (mGnssCallback != null) {
|
||||
mTimeToFirstFix = ttff;
|
||||
Message msg = Message.obtain();
|
||||
msg.what = GpsStatus.GPS_EVENT_FIRST_FIX;
|
||||
mGnssHandler.sendMessage(msg);
|
||||
mGnssHandler.obtainMessage(GNSS_EVENT_FIRST_FIX).sendToTarget();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1817,11 +1753,8 @@ public class LocationManager {
|
||||
mGnssStatus = new GnssStatus(svCount, prnWithFlags, cn0s, elevations, azimuths,
|
||||
carrierFreqs);
|
||||
|
||||
Message msg = Message.obtain();
|
||||
msg.what = GpsStatus.GPS_EVENT_SATELLITE_STATUS;
|
||||
// remove any SV status messages already in the queue
|
||||
mGnssHandler.removeMessages(GpsStatus.GPS_EVENT_SATELLITE_STATUS);
|
||||
mGnssHandler.sendMessage(msg);
|
||||
mGnssHandler.removeMessages(GNSS_EVENT_SATELLITE_STATUS);
|
||||
mGnssHandler.obtainMessage(GNSS_EVENT_SATELLITE_STATUS).sendToTarget();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1831,11 +1764,9 @@ public class LocationManager {
|
||||
synchronized (mNmeaBuffer) {
|
||||
mNmeaBuffer.add(new Nmea(timestamp, nmea));
|
||||
}
|
||||
Message msg = Message.obtain();
|
||||
msg.what = NMEA_RECEIVED;
|
||||
// remove any NMEA_RECEIVED messages already in the queue
|
||||
|
||||
mGnssHandler.removeMessages(NMEA_RECEIVED);
|
||||
mGnssHandler.sendMessage(msg);
|
||||
mGnssHandler.obtainMessage(NMEA_RECEIVED).sendToTarget();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1849,27 +1780,12 @@ public class LocationManager {
|
||||
*
|
||||
* @throws SecurityException if the ACCESS_FINE_LOCATION permission is not present
|
||||
* @deprecated use {@link #registerGnssStatusCallback(GnssStatus.Callback)} instead.
|
||||
* @removed
|
||||
*/
|
||||
@Deprecated
|
||||
@RequiresPermission(ACCESS_FINE_LOCATION)
|
||||
public boolean addGpsStatusListener(GpsStatus.Listener listener) {
|
||||
boolean result;
|
||||
|
||||
if (mGpsStatusListeners.get(listener) != null) {
|
||||
// listener is already registered
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
GnssStatusListenerTransport transport = new GnssStatusListenerTransport(listener);
|
||||
result = mService.registerGnssStatusCallback(transport, mContext.getPackageName());
|
||||
if (result) {
|
||||
mGpsStatusListeners.put(listener, transport);
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
|
||||
return result;
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1877,18 +1793,10 @@ public class LocationManager {
|
||||
*
|
||||
* @param listener GPS status listener object to remove
|
||||
* @deprecated use {@link #unregisterGnssStatusCallback(GnssStatus.Callback)} instead.
|
||||
* @removed
|
||||
*/
|
||||
@Deprecated
|
||||
public void removeGpsStatusListener(GpsStatus.Listener listener) {
|
||||
try {
|
||||
GnssStatusListenerTransport transport = mGpsStatusListeners.remove(listener);
|
||||
if (transport != null) {
|
||||
mService.unregisterGnssStatusCallback(transport);
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
public void removeGpsStatusListener(GpsStatus.Listener listener) {}
|
||||
|
||||
/**
|
||||
* Registers a GNSS status callback.
|
||||
@@ -1900,7 +1808,7 @@ public class LocationManager {
|
||||
* @throws SecurityException if the ACCESS_FINE_LOCATION permission is not present
|
||||
*/
|
||||
@RequiresPermission(ACCESS_FINE_LOCATION)
|
||||
public boolean registerGnssStatusCallback(GnssStatus.Callback callback) {
|
||||
public boolean registerGnssStatusCallback(@NonNull GnssStatus.Callback callback) {
|
||||
return registerGnssStatusCallback(callback, null);
|
||||
}
|
||||
|
||||
@@ -1915,7 +1823,8 @@ public class LocationManager {
|
||||
* @throws SecurityException if the ACCESS_FINE_LOCATION permission is not present
|
||||
*/
|
||||
@RequiresPermission(ACCESS_FINE_LOCATION)
|
||||
public boolean registerGnssStatusCallback(GnssStatus.Callback callback, Handler handler) {
|
||||
public boolean registerGnssStatusCallback(
|
||||
@NonNull GnssStatus.Callback callback, @Nullable Handler handler) {
|
||||
boolean result;
|
||||
if (mGnssStatusListeners.get(callback) != null) {
|
||||
// listener is already registered
|
||||
@@ -1940,7 +1849,7 @@ public class LocationManager {
|
||||
*
|
||||
* @param callback GNSS status callback object to remove
|
||||
*/
|
||||
public void unregisterGnssStatusCallback(GnssStatus.Callback callback) {
|
||||
public void unregisterGnssStatusCallback(@NonNull GnssStatus.Callback callback) {
|
||||
try {
|
||||
GnssStatusListenerTransport transport = mGnssStatusListeners.remove(callback);
|
||||
if (transport != null) {
|
||||
@@ -1960,27 +1869,12 @@ public class LocationManager {
|
||||
*
|
||||
* @throws SecurityException if the ACCESS_FINE_LOCATION permission is not present
|
||||
* @deprecated use {@link #addNmeaListener(OnNmeaMessageListener)} instead.
|
||||
* @removed
|
||||
*/
|
||||
@Deprecated
|
||||
@RequiresPermission(ACCESS_FINE_LOCATION)
|
||||
public boolean addNmeaListener(GpsStatus.NmeaListener listener) {
|
||||
boolean result;
|
||||
|
||||
if (mGpsNmeaListeners.get(listener) != null) {
|
||||
// listener is already registered
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
GnssStatusListenerTransport transport = new GnssStatusListenerTransport(listener);
|
||||
result = mService.registerGnssStatusCallback(transport, mContext.getPackageName());
|
||||
if (result) {
|
||||
mGpsNmeaListeners.put(listener, transport);
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
|
||||
return result;
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1988,18 +1882,10 @@ public class LocationManager {
|
||||
*
|
||||
* @param listener a {@link GpsStatus.NmeaListener} object to remove
|
||||
* @deprecated use {@link #removeNmeaListener(OnNmeaMessageListener)} instead.
|
||||
* @removed
|
||||
*/
|
||||
@Deprecated
|
||||
public void removeNmeaListener(GpsStatus.NmeaListener listener) {
|
||||
try {
|
||||
GnssStatusListenerTransport transport = mGpsNmeaListeners.remove(listener);
|
||||
if (transport != null) {
|
||||
mService.unregisterGnssStatusCallback(transport);
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
public void removeNmeaListener(GpsStatus.NmeaListener listener) {}
|
||||
|
||||
/**
|
||||
* Adds an NMEA listener.
|
||||
@@ -2011,7 +1897,7 @@ public class LocationManager {
|
||||
* @throws SecurityException if the ACCESS_FINE_LOCATION permission is not present
|
||||
*/
|
||||
@RequiresPermission(ACCESS_FINE_LOCATION)
|
||||
public boolean addNmeaListener(OnNmeaMessageListener listener) {
|
||||
public boolean addNmeaListener(@NonNull OnNmeaMessageListener listener) {
|
||||
return addNmeaListener(listener, null);
|
||||
}
|
||||
|
||||
@@ -2026,10 +1912,11 @@ public class LocationManager {
|
||||
* @throws SecurityException if the ACCESS_FINE_LOCATION permission is not present
|
||||
*/
|
||||
@RequiresPermission(ACCESS_FINE_LOCATION)
|
||||
public boolean addNmeaListener(OnNmeaMessageListener listener, Handler handler) {
|
||||
public boolean addNmeaListener(
|
||||
@NonNull OnNmeaMessageListener listener, @Nullable Handler handler) {
|
||||
boolean result;
|
||||
|
||||
if (mGpsNmeaListeners.get(listener) != null) {
|
||||
if (mGnssNmeaListeners.get(listener) != null) {
|
||||
// listener is already registered
|
||||
return true;
|
||||
}
|
||||
@@ -2052,7 +1939,7 @@ public class LocationManager {
|
||||
*
|
||||
* @param listener a {@link OnNmeaMessageListener} object to remove
|
||||
*/
|
||||
public void removeNmeaListener(OnNmeaMessageListener listener) {
|
||||
public void removeNmeaListener(@NonNull OnNmeaMessageListener listener) {
|
||||
try {
|
||||
GnssStatusListenerTransport transport = mGnssNmeaListeners.remove(listener);
|
||||
if (transport != null) {
|
||||
@@ -2068,6 +1955,7 @@ public class LocationManager {
|
||||
* Don't use it. Use {@link #registerGnssMeasurementsCallback} instead.
|
||||
* @hide
|
||||
* @deprecated Not supported anymore.
|
||||
* @removed
|
||||
*/
|
||||
@Deprecated
|
||||
@SystemApi
|
||||
@@ -2083,7 +1971,8 @@ public class LocationManager {
|
||||
* @return {@code true} if the callback was added successfully, {@code false} otherwise.
|
||||
*/
|
||||
@RequiresPermission(ACCESS_FINE_LOCATION)
|
||||
public boolean registerGnssMeasurementsCallback(GnssMeasurementsEvent.Callback callback) {
|
||||
public boolean registerGnssMeasurementsCallback(
|
||||
@NonNull GnssMeasurementsEvent.Callback callback) {
|
||||
return registerGnssMeasurementsCallback(callback, null);
|
||||
}
|
||||
|
||||
@@ -2095,8 +1984,8 @@ public class LocationManager {
|
||||
* @return {@code true} if the callback was added successfully, {@code false} otherwise.
|
||||
*/
|
||||
@RequiresPermission(ACCESS_FINE_LOCATION)
|
||||
public boolean registerGnssMeasurementsCallback(GnssMeasurementsEvent.Callback callback,
|
||||
Handler handler) {
|
||||
public boolean registerGnssMeasurementsCallback(
|
||||
@NonNull GnssMeasurementsEvent.Callback callback, @Nullable Handler handler) {
|
||||
return mGnssMeasurementCallbackTransport.add(callback, handler);
|
||||
}
|
||||
|
||||
@@ -2120,15 +2009,12 @@ public class LocationManager {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an integer with flags representing the capabilities of the GNSS chipset.
|
||||
* Returns the integer capability flags of the GNSS chipset as defined in {@code
|
||||
* IGnssCallback.hal}
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
/**
|
||||
* Returns the integer capability flags of the GNSS chipset as defined in {@code
|
||||
* IGnssCallback.hal}
|
||||
*/
|
||||
public int getGnssCapabilities() {
|
||||
try {
|
||||
return mGnssMeasurementCallbackTransport.getGnssCapabilities();
|
||||
@@ -2144,6 +2030,7 @@ public class LocationManager {
|
||||
* @hide
|
||||
* @deprecated use {@link #unregisterGnssMeasurementsCallback(GnssMeasurementsEvent.Callback)}
|
||||
* instead.
|
||||
* @removed
|
||||
*/
|
||||
@Deprecated
|
||||
@SystemApi
|
||||
@@ -2155,7 +2042,8 @@ public class LocationManager {
|
||||
*
|
||||
* @param callback a {@link GnssMeasurementsEvent.Callback} object to remove.
|
||||
*/
|
||||
public void unregisterGnssMeasurementsCallback(GnssMeasurementsEvent.Callback callback) {
|
||||
public void unregisterGnssMeasurementsCallback(
|
||||
@NonNull GnssMeasurementsEvent.Callback callback) {
|
||||
mGnssMeasurementCallbackTransport.remove(callback);
|
||||
}
|
||||
|
||||
@@ -2164,6 +2052,7 @@ public class LocationManager {
|
||||
* Don't use it. Use {@link #registerGnssNavigationMessageCallback} instead.
|
||||
* @hide
|
||||
* @deprecated Not supported anymore.
|
||||
* @removed
|
||||
*/
|
||||
@Deprecated
|
||||
@SystemApi
|
||||
@@ -2179,12 +2068,12 @@ public class LocationManager {
|
||||
* @deprecated use
|
||||
* {@link #unregisterGnssNavigationMessageCallback(GnssNavigationMessage.Callback)}
|
||||
* instead
|
||||
* @removed
|
||||
*/
|
||||
@Deprecated
|
||||
@SystemApi
|
||||
@SuppressLint("Doclava125")
|
||||
public void removeGpsNavigationMessageListener(GpsNavigationMessageEvent.Listener listener) {
|
||||
}
|
||||
public void removeGpsNavigationMessageListener(GpsNavigationMessageEvent.Listener listener) {}
|
||||
|
||||
/**
|
||||
* Registers a GNSS Navigation Message callback.
|
||||
@@ -2193,7 +2082,7 @@ public class LocationManager {
|
||||
* @return {@code true} if the callback was added successfully, {@code false} otherwise.
|
||||
*/
|
||||
public boolean registerGnssNavigationMessageCallback(
|
||||
GnssNavigationMessage.Callback callback) {
|
||||
@NonNull GnssNavigationMessage.Callback callback) {
|
||||
return registerGnssNavigationMessageCallback(callback, null);
|
||||
}
|
||||
|
||||
@@ -2206,7 +2095,7 @@ public class LocationManager {
|
||||
*/
|
||||
@RequiresPermission(ACCESS_FINE_LOCATION)
|
||||
public boolean registerGnssNavigationMessageCallback(
|
||||
GnssNavigationMessage.Callback callback, Handler handler) {
|
||||
@NonNull GnssNavigationMessage.Callback callback, @Nullable Handler handler) {
|
||||
return mGnssNavigationMessageCallbackTransport.add(callback, handler);
|
||||
}
|
||||
|
||||
@@ -2216,7 +2105,7 @@ public class LocationManager {
|
||||
* @param callback a {@link GnssNavigationMessage.Callback} object to remove.
|
||||
*/
|
||||
public void unregisterGnssNavigationMessageCallback(
|
||||
GnssNavigationMessage.Callback callback) {
|
||||
@NonNull GnssNavigationMessage.Callback callback) {
|
||||
mGnssNavigationMessageCallbackTransport.remove(callback);
|
||||
}
|
||||
|
||||
@@ -2230,19 +2119,12 @@ public class LocationManager {
|
||||
*
|
||||
* @param status object containing GPS status details, or null.
|
||||
* @return status object containing updated GPS status.
|
||||
* @removed
|
||||
*/
|
||||
@Deprecated
|
||||
@RequiresPermission(ACCESS_FINE_LOCATION)
|
||||
public GpsStatus getGpsStatus(GpsStatus status) {
|
||||
if (status == null) {
|
||||
status = new GpsStatus();
|
||||
}
|
||||
// When mGnssStatus is null, that means that this method is called outside
|
||||
// onGpsStatusChanged(). Return an empty status to maintain backwards compatibility.
|
||||
if (mGnssStatus != null) {
|
||||
status.setStatus(mGnssStatus, mTimeToFirstFix);
|
||||
}
|
||||
return status;
|
||||
public @Nullable GpsStatus getGpsStatus(@Nullable GpsStatus status) {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2319,7 +2201,7 @@ public class LocationManager {
|
||||
@SystemApi
|
||||
@RequiresPermission(Manifest.permission.LOCATION_HARDWARE)
|
||||
public boolean registerGnssBatchedLocationCallback(long periodNanos, boolean wakeOnFifoFull,
|
||||
BatchedLocationCallback callback, Handler handler) {
|
||||
@NonNull BatchedLocationCallback callback, @Nullable Handler handler) {
|
||||
mBatchedLocationCallbackTransport.add(callback, handler);
|
||||
|
||||
try {
|
||||
@@ -2357,7 +2239,8 @@ public class LocationManager {
|
||||
*/
|
||||
@SystemApi
|
||||
@RequiresPermission(Manifest.permission.LOCATION_HARDWARE)
|
||||
public boolean unregisterGnssBatchedLocationCallback(BatchedLocationCallback callback) {
|
||||
public boolean unregisterGnssBatchedLocationCallback(
|
||||
@NonNull BatchedLocationCallback callback) {
|
||||
|
||||
mBatchedLocationCallbackTransport.remove(callback);
|
||||
|
||||
@@ -2379,7 +2262,8 @@ public class LocationManager {
|
||||
*
|
||||
* @return true if the command succeeds.
|
||||
*/
|
||||
public boolean sendExtraCommand(String provider, String command, Bundle extras) {
|
||||
public boolean sendExtraCommand(
|
||||
@NonNull String provider, @NonNull String command, @Nullable Bundle extras) {
|
||||
try {
|
||||
return mService.sendExtraCommand(provider, command, extras);
|
||||
} catch (RemoteException e) {
|
||||
@@ -2448,7 +2332,7 @@ public class LocationManager {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public boolean isProviderPackage(String packageName) {
|
||||
public boolean isProviderPackage(@NonNull String packageName) {
|
||||
try {
|
||||
return mService.isProviderPackage(packageName);
|
||||
} catch (RemoteException e) {
|
||||
@@ -2464,7 +2348,7 @@ public class LocationManager {
|
||||
*/
|
||||
@SystemApi
|
||||
@RequiresPermission(Manifest.permission.LOCATION_HARDWARE)
|
||||
public void setLocationControllerExtraPackage(String packageName) {
|
||||
public void setLocationControllerExtraPackage(@NonNull String packageName) {
|
||||
try {
|
||||
mService.setLocationControllerExtraPackage(packageName);
|
||||
} catch (RemoteException e) {
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
package android.location;
|
||||
|
||||
import android.Manifest;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.RequiresPermission;
|
||||
import android.annotation.SystemApi;
|
||||
import android.annotation.TestApi;
|
||||
@@ -183,14 +185,16 @@ public final class LocationRequest implements Parcelable {
|
||||
*
|
||||
* @return a new location request
|
||||
*/
|
||||
@NonNull
|
||||
public static LocationRequest create() {
|
||||
return new LocationRequest();
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
@SystemApi
|
||||
public static LocationRequest createFromDeprecatedProvider(String provider, long minTime,
|
||||
float minDistance, boolean singleShot) {
|
||||
@NonNull
|
||||
public static LocationRequest createFromDeprecatedProvider(
|
||||
@NonNull String provider, long minTime, float minDistance, boolean singleShot) {
|
||||
if (minTime < 0) minTime = 0;
|
||||
if (minDistance < 0) minDistance = 0;
|
||||
|
||||
@@ -215,8 +219,9 @@ public final class LocationRequest implements Parcelable {
|
||||
|
||||
/** @hide */
|
||||
@SystemApi
|
||||
public static LocationRequest createFromDeprecatedCriteria(Criteria criteria, long minTime,
|
||||
float minDistance, boolean singleShot) {
|
||||
@NonNull
|
||||
public static LocationRequest createFromDeprecatedCriteria(
|
||||
@NonNull Criteria criteria, long minTime, float minDistance, boolean singleShot) {
|
||||
if (minTime < 0) minTime = 0;
|
||||
if (minDistance < 0) minDistance = 0;
|
||||
|
||||
@@ -287,7 +292,7 @@ public final class LocationRequest implements Parcelable {
|
||||
* @return the same object, so that setters can be chained
|
||||
* @throws IllegalArgumentException if the quality constant is not valid
|
||||
*/
|
||||
public LocationRequest setQuality(int quality) {
|
||||
public @NonNull LocationRequest setQuality(int quality) {
|
||||
checkQuality(quality);
|
||||
mQuality = quality;
|
||||
return this;
|
||||
@@ -330,7 +335,7 @@ public final class LocationRequest implements Parcelable {
|
||||
* @return the same object, so that setters can be chained
|
||||
* @throws IllegalArgumentException if the interval is less than zero
|
||||
*/
|
||||
public LocationRequest setInterval(long millis) {
|
||||
public @NonNull LocationRequest setInterval(long millis) {
|
||||
checkInterval(millis);
|
||||
mInterval = millis;
|
||||
if (!mExplicitFastestInterval) {
|
||||
@@ -362,7 +367,7 @@ public final class LocationRequest implements Parcelable {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public LocationRequest setLowPowerMode(boolean enabled) {
|
||||
public @NonNull LocationRequest setLowPowerMode(boolean enabled) {
|
||||
mLowPowerMode = enabled;
|
||||
return this;
|
||||
}
|
||||
@@ -386,7 +391,7 @@ public final class LocationRequest implements Parcelable {
|
||||
* @return the same object, so that setters can be chained
|
||||
*/
|
||||
@RequiresPermission(Manifest.permission.WRITE_SECURE_SETTINGS)
|
||||
public LocationRequest setLocationSettingsIgnored(boolean locationSettingsIgnored) {
|
||||
public @NonNull LocationRequest setLocationSettingsIgnored(boolean locationSettingsIgnored) {
|
||||
mLocationSettingsIgnored = locationSettingsIgnored;
|
||||
return this;
|
||||
}
|
||||
@@ -427,7 +432,7 @@ public final class LocationRequest implements Parcelable {
|
||||
* @return the same object, so that setters can be chained
|
||||
* @throws IllegalArgumentException if the interval is less than zero
|
||||
*/
|
||||
public LocationRequest setFastestInterval(long millis) {
|
||||
public @NonNull LocationRequest setFastestInterval(long millis) {
|
||||
checkInterval(millis);
|
||||
mExplicitFastestInterval = true;
|
||||
mFastestInterval = millis;
|
||||
@@ -463,7 +468,7 @@ public final class LocationRequest implements Parcelable {
|
||||
* @param millis duration of request in milliseconds
|
||||
* @return the same object, so that setters can be chained
|
||||
*/
|
||||
public LocationRequest setExpireIn(long millis) {
|
||||
public @NonNull LocationRequest setExpireIn(long millis) {
|
||||
long elapsedRealtime = SystemClock.elapsedRealtime();
|
||||
|
||||
// Check for > Long.MAX_VALUE overflow (elapsedRealtime > 0):
|
||||
@@ -491,7 +496,7 @@ public final class LocationRequest implements Parcelable {
|
||||
* @param millis expiration time of request, in milliseconds since boot including suspend
|
||||
* @return the same object, so that setters can be chained
|
||||
*/
|
||||
public LocationRequest setExpireAt(long millis) {
|
||||
public @NonNull LocationRequest setExpireAt(long millis) {
|
||||
mExpireAt = millis;
|
||||
if (mExpireAt < 0) mExpireAt = 0;
|
||||
return this;
|
||||
@@ -522,7 +527,7 @@ public final class LocationRequest implements Parcelable {
|
||||
* @return the same object, so that setters can be chained
|
||||
* @throws IllegalArgumentException if numUpdates is 0 or less
|
||||
*/
|
||||
public LocationRequest setNumUpdates(int numUpdates) {
|
||||
public @NonNull LocationRequest setNumUpdates(int numUpdates) {
|
||||
if (numUpdates <= 0) {
|
||||
throw new IllegalArgumentException(
|
||||
"invalid numUpdates: " + numUpdates);
|
||||
@@ -553,7 +558,8 @@ public final class LocationRequest implements Parcelable {
|
||||
}
|
||||
}
|
||||
|
||||
public LocationRequest setProvider(String provider) {
|
||||
/** Sets the provider to use for this location request. */
|
||||
public @NonNull LocationRequest setProvider(@NonNull String provider) {
|
||||
checkProvider(provider);
|
||||
mProvider = provider;
|
||||
return this;
|
||||
@@ -561,13 +567,13 @@ public final class LocationRequest implements Parcelable {
|
||||
|
||||
/** @hide */
|
||||
@SystemApi
|
||||
public String getProvider() {
|
||||
public @NonNull String getProvider() {
|
||||
return mProvider;
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
@SystemApi
|
||||
public LocationRequest setSmallestDisplacement(float meters) {
|
||||
public @NonNull LocationRequest setSmallestDisplacement(float meters) {
|
||||
checkDisplacement(meters);
|
||||
mSmallestDisplacement = meters;
|
||||
return this;
|
||||
@@ -590,13 +596,13 @@ public final class LocationRequest implements Parcelable {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public void setWorkSource(WorkSource workSource) {
|
||||
public void setWorkSource(@Nullable WorkSource workSource) {
|
||||
mWorkSource = workSource;
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
@SystemApi
|
||||
public WorkSource getWorkSource() {
|
||||
public @Nullable WorkSource getWorkSource() {
|
||||
return mWorkSource;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user