LocationManager
  public
  
  
  
  class
  LocationManager
  
    extends Object
  
  
  
  
  
  
| java.lang.Object | |
| ↳ | android.location.LocationManager | 
This class provides access to the system location services. These services allow applications to obtain periodic updates of the device's geographical location, or to be notified when the device enters the proximity of a given geographical location.
Unless otherwise noted, all Location API methods require the
 Manifest.permission.ACCESS_COARSE_LOCATION or
 Manifest.permission.ACCESS_FINE_LOCATION permissions. If your application only
 has the coarse permission then providers will still return location results, but the exact
 location will be obfuscated to a coarse level of accuracy.
 
 Requires the PackageManager#FEATURE_LOCATION feature which can be detected using PackageManager.hasSystemFeature(String).
Summary
| Constants | |
|---|---|
| String | ACTION_GNSS_CAPABILITIES_CHANGEDBroadcast intent action when GNSS capabilities change. | 
| String | EXTRA_GNSS_CAPABILITIESIntent extra included with  | 
| String | EXTRA_LOCATION_ENABLEDIntent extra included with  | 
| String | EXTRA_PROVIDER_ENABLEDIntent extra included with  | 
| String | EXTRA_PROVIDER_NAMEIntent extra included with  | 
| String | FUSED_PROVIDERStandard name of the fused location provider. | 
| String | GPS_PROVIDERStandard name of the GNSS location provider. | 
| String | KEY_FLUSH_COMPLETEKey used for an extra holding an integer request code when location flush completion is sent using a PendingIntent. | 
| String | KEY_LOCATIONSKey used for an extra holding a array of  | 
| String | KEY_LOCATION_CHANGEDKey used for an extra holding a  | 
| String | KEY_PROVIDER_ENABLEDKey used for an extra holding a boolean enabled/disabled status value when a provider enabled/disabled event is broadcast using a PendingIntent. | 
| String | KEY_PROXIMITY_ENTERINGKey used for the Bundle extra holding a boolean indicating whether a proximity alert is entering (true) or exiting (false).. | 
| String | KEY_STATUS_CHANGEDThis constant was deprecated in API level 29. Status changes are deprecated and no longer broadcast from Android Q onwards. | 
| String | MODE_CHANGED_ACTIONBroadcast intent action when the device location enabled state changes. | 
| String | NETWORK_PROVIDERStandard name of the network location provider. | 
| String | PASSIVE_PROVIDERA special location provider for receiving locations without actively initiating a location fix. | 
| String | PROVIDERS_CHANGED_ACTIONBroadcast intent action when the set of enabled location providers changes. | 
| Public methods | |
|---|---|
| 
        
        
        
        
        
        boolean | 
      addGpsStatusListener(GpsStatus.Listener listener)
      
      This method was deprecated
      in API level 24.
    Use  | 
| 
        
        
        
        
        
        boolean | 
      addNmeaListener(OnNmeaMessageListener listener, Handler handler)
      Adds an NMEA listener. | 
| 
        
        
        
        
        
        boolean | 
      addNmeaListener(OnNmeaMessageListener listener)
      
      This method was deprecated
      in API level 30.
    Use  | 
| 
        
        
        
        
        
        boolean | 
      addNmeaListener(GpsStatus.NmeaListener listener)
      
      This method was deprecated
      in API level 24.
    Use  | 
| 
        
        
        
        
        
        boolean | 
      addNmeaListener(Executor executor, OnNmeaMessageListener listener)
      Adds an NMEA listener. | 
| 
        
        
        
        
        
        void | 
      addProximityAlert(double latitude, double longitude, float radius, long expiration, PendingIntent pendingIntent)
      Sets a proximity alert for the location given by the position (latitude, longitude) and the given radius. | 
| 
        
        
        
        
        
        void | 
      addTestProvider(String provider, ProviderProperties properties)
      Creates a test location provider and adds it to the set of active providers. | 
| 
        
        
        
        
        
        void | 
      addTestProvider(String provider, ProviderProperties properties, Set<String> extraAttributionTags)
      Creates a test location provider and adds it to the set of active providers. | 
| 
        
        
        
        
        
        void | 
      addTestProvider(String provider, boolean requiresNetwork, boolean requiresSatellite, boolean requiresCell, boolean hasMonetaryCost, boolean supportsAltitude, boolean supportsSpeed, boolean supportsBearing, int powerUsage, int accuracy)
      Creates a test location provider and adds it to the set of active providers. | 
| 
        
        
        
        
        
        void | 
      clearTestProviderEnabled(String provider)
      
      This method was deprecated
      in API level 29.
    Use  | 
| 
        
        
        
        
        
        void | 
      clearTestProviderLocation(String provider)
      This method was deprecated in API level 29. This method has always been a no-op, and may be removed in the future. | 
| 
        
        
        
        
        
        void | 
      clearTestProviderStatus(String provider)
      This method was deprecated in API level 29. This method has no effect. | 
| 
        
        
        
        
        
        List<String> | 
      getAllProviders()
      Returns a list of the names of all available location providers. | 
| 
        
        
        
        
        
        String | 
      getBestProvider(Criteria criteria, boolean enabledOnly)
      This method was deprecated in API level 34. Criteria based APIs are deprecated, prefer to select a provider explicitly. | 
| 
        
        
        
        
        
        void | 
      getCurrentLocation(String provider, LocationRequest locationRequest, CancellationSignal cancellationSignal, Executor executor, Consumer<Location> consumer)
      Asynchronously returns a single current location fix from the given provider based on the
 given  | 
| 
        
        
        
        
        
        void | 
      getCurrentLocation(String provider, CancellationSignal cancellationSignal, Executor executor, Consumer<Location> consumer)
      Asynchronously returns a single current location fix from the given provider. | 
| 
        
        
        
        
        
        List<GnssAntennaInfo> | 
      getGnssAntennaInfos()
      Returns the current list of GNSS antenna infos, or null if unknown or unsupported. | 
| 
        
        
        
        
        
        GnssCapabilities | 
      getGnssCapabilities()
      Returns the supported capabilities of the GNSS chipset. | 
| 
        
        
        
        
        
        String | 
      getGnssHardwareModelName()
      Returns the model name (including vendor and hardware/software version) of the GNSS hardware driver, or null if this information is not available. | 
| 
        
        
        
        
        
        int | 
      getGnssYearOfHardware()
      Returns the model year of the GNSS hardware and software build, or 0 if the model year is before 2016. | 
| 
        
        
        
        
        
        GpsStatus | 
      getGpsStatus(GpsStatus status)
      
      This method was deprecated
      in API level 24.
    GpsStatus APIs are deprecated, use  | 
| 
        
        
        
        
        
        Location | 
      getLastKnownLocation(String provider)
      Gets the last known location from the given provider, or null if there is no last known location. | 
| 
        
        
        
        
        
        LocationProvider | 
      getProvider(String provider)
      
      This method was deprecated
      in API level 31.
    This method has no way to indicate that a provider's properties are unknown, and
 so may return incorrect results on rare occasions. Use  | 
| 
        
        
        
        
        
        ProviderProperties | 
      getProviderProperties(String provider)
      Returns the properties of the given provider, or null if the properties are currently unknown. | 
| 
        
        
        
        
        
        List<String> | 
      getProviders(boolean enabledOnly)
      Returns a list of the names of available location providers. | 
| 
        
        
        
        
        
        List<String> | 
      getProviders(Criteria criteria, boolean enabledOnly)
      This method was deprecated in API level 34. Criteria based APIs are deprecated, prefer to select a provider explicitly. | 
| 
        
        
        
        
        
        boolean | 
      hasProvider(String provider)
      Returns true if the given location provider exists on this device, irrespective of whether it is currently enabled or not. | 
| 
        
        
        
        
        
        boolean | 
      isLocationEnabled()
      Returns the current enabled/disabled state of location. | 
| 
        
        
        
        
        
        boolean | 
      isProviderEnabled(String provider)
      Returns the current enabled/disabled status of the given provider. | 
| 
        
        
        
        
        
        boolean | 
      registerAntennaInfoListener(Executor executor, GnssAntennaInfo.Listener listener)
      Registers a GNSS antenna info listener that will receive all changes to antenna info. | 
| 
        
        
        
        
        
        boolean | 
      registerGnssMeasurementsCallback(Executor executor, GnssMeasurementsEvent.Callback callback)
      Registers a GNSS measurements callback. | 
| 
        
        
        
        
        
        boolean | 
      registerGnssMeasurementsCallback(GnssMeasurementsEvent.Callback callback)
      
      This method was deprecated
      in API level 30}.
    Use  | 
| 
        
        
        
        
        
        boolean | 
      registerGnssMeasurementsCallback(GnssMeasurementRequest request, Executor executor, GnssMeasurementsEvent.Callback callback)
      Registers a GNSS measurement callback. | 
| 
        
        
        
        
        
        boolean | 
      registerGnssMeasurementsCallback(GnssMeasurementsEvent.Callback callback, Handler handler)
      Registers a GNSS measurements callback. | 
| 
        
        
        
        
        
        boolean | 
      registerGnssNavigationMessageCallback(GnssNavigationMessage.Callback callback, Handler handler)
      Registers a GNSS navigation message callback. | 
| 
        
        
        
        
        
        boolean | 
      registerGnssNavigationMessageCallback(Executor executor, GnssNavigationMessage.Callback callback)
      Registers a GNSS navigation message callback. | 
| 
        
        
        
        
        
        boolean | 
      registerGnssNavigationMessageCallback(GnssNavigationMessage.Callback callback)
      
      This method was deprecated
      in API level 30.
    Use  | 
| 
        
        
        
        
        
        boolean | 
      registerGnssStatusCallback(GnssStatus.Callback callback)
      
      This method was deprecated
      in API level 30.
    Use  | 
| 
        
        
        
        
        
        boolean | 
      registerGnssStatusCallback(GnssStatus.Callback callback, Handler handler)
      Registers a GNSS status callback. | 
| 
        
        
        
        
        
        boolean | 
      registerGnssStatusCallback(Executor executor, GnssStatus.Callback callback)
      Registers a GNSS status callback. | 
| 
        
        
        
        
        
        void | 
      removeGpsStatusListener(GpsStatus.Listener listener)
      
      This method was deprecated
      in API level 24.
    use  | 
| 
        
        
        
        
        
        void | 
      removeNmeaListener(OnNmeaMessageListener listener)
      Removes an NMEA listener. | 
| 
        
        
        
        
        
        void | 
      removeNmeaListener(GpsStatus.NmeaListener listener)
      
      This method was deprecated
      in API level 24.
    Use  | 
| 
        
        
        
        
        
        void | 
      removeProximityAlert(PendingIntent intent)
      Removes the proximity alert with the given PendingIntent. | 
| 
        
        
        
        
        
        void | 
      removeTestProvider(String provider)
      Removes the test location provider with the given name or does nothing if no such test location provider exists. | 
| 
        
        
        
        
        
        void | 
      removeUpdates(LocationListener listener)
      Removes all location updates for the specified  | 
| 
        
        
        
        
        
        void | 
      removeUpdates(PendingIntent pendingIntent)
      Removes location updates for the specified  | 
| 
        
        
        
        
        
        void | 
      requestFlush(String provider, LocationListener listener, int requestCode)
      Requests that the given provider flush any batched locations to listeners. | 
| 
        
        
        
        
        
        void | 
      requestFlush(String provider, PendingIntent pendingIntent, int requestCode)
      Requests that the given provider flush any batched locations to listeners. | 
| 
        
        
        
        
        
        void | 
      requestLocationUpdates(String provider, long minTimeMs, float minDistanceM, LocationListener listener)
      Register for location updates from the given provider with the given arguments, and a
 callback on the  | 
| 
        
        
        
        
        
        void | 
      requestLocationUpdates(long minTimeMs, float minDistanceM, Criteria criteria, LocationListener listener, Looper looper)
      
      This method was deprecated
      in API level 31.
    Use
  | 
| 
        
        
        
        
        
        void | 
      requestLocationUpdates(String provider, long minTimeMs, float minDistanceM, LocationListener listener, Looper looper)
      Register for location updates from the given provider with the given arguments, and a
 callback on the specified  | 
| 
        
        
        
        
        
        void | 
      requestLocationUpdates(String provider, long minTimeMs, float minDistanceM, Executor executor, LocationListener listener)
      Register for location updates using the named provider, and a callback on
 the specified  | 
| 
        
        
        
        
        
        void | 
      requestLocationUpdates(String provider, LocationRequest locationRequest, PendingIntent pendingIntent)
      Register for location updates from the specified provider, using a  | 
| 
        
        
        
        
        
        void | 
      requestLocationUpdates(String provider, LocationRequest locationRequest, Executor executor, LocationListener listener)
      Register for location updates from the specified provider, using a  | 
| 
        
        
        
        
        
        void | 
      requestLocationUpdates(long minTimeMs, float minDistanceM, Criteria criteria, PendingIntent pendingIntent)
      
      This method was deprecated
      in API level 31.
    Use  | 
| 
        
        
        
        
        
        void | 
      requestLocationUpdates(long minTimeMs, float minDistanceM, Criteria criteria, Executor executor, LocationListener listener)
      
      This method was deprecated
      in API level 31.
    Use
  | 
| 
        
        
        
        
        
        void | 
      requestLocationUpdates(String provider, long minTimeMs, float minDistanceM, PendingIntent pendingIntent)
      Register for location updates using the named provider, and callbacks delivered via the
 provided  | 
| 
        
        
        
        
        
        void | 
      requestSingleUpdate(String provider, PendingIntent pendingIntent)
      
      This method was deprecated
      in API level 30.
    Use  | 
| 
        
        
        
        
        
        void | 
      requestSingleUpdate(Criteria criteria, PendingIntent pendingIntent)
      
      This method was deprecated
      in API level 30.
    Use  | 
| 
        
        
        
        
        
        void | 
      requestSingleUpdate(String provider, LocationListener listener, Looper looper)
      
      This method was deprecated
      in API level 30.
    Use  | 
| 
        
        
        
        
        
        void | 
      requestSingleUpdate(Criteria criteria, LocationListener listener, Looper looper)
      
      This method was deprecated
      in API level 30.
    Use  | 
| 
        
        
        
        
        
        boolean | 
      sendExtraCommand(String provider, String command, Bundle extras)
      Sends additional commands to a location provider. | 
| 
        
        
        
        
        
        void | 
      setTestProviderEnabled(String provider, boolean enabled)
      Sets the given test provider to be enabled or disabled. | 
| 
        
        
        
        
        
        void | 
      setTestProviderLocation(String provider, Location location)
      Sets a new location for the given test provider. | 
| 
        
        
        
        
        
        void | 
      setTestProviderStatus(String provider, int status, Bundle extras, long updateTime)
      This method was deprecated in API level 29. This method has no effect. | 
| 
        
        
        
        
        
        void | 
      unregisterAntennaInfoListener(GnssAntennaInfo.Listener listener)
      Unregisters a GNSS antenna info listener. | 
| 
        
        
        
        
        
        void | 
      unregisterGnssMeasurementsCallback(GnssMeasurementsEvent.Callback callback)
      Unregisters a GPS Measurement callback. | 
| 
        
        
        
        
        
        void | 
      unregisterGnssNavigationMessageCallback(GnssNavigationMessage.Callback callback)
      Unregisters a GNSS Navigation Message callback. | 
| 
        
        
        
        
        
        void | 
      unregisterGnssStatusCallback(GnssStatus.Callback callback)
      Removes a GNSS status callback. | 
| Inherited methods | |
|---|---|
Constants
ACTION_GNSS_CAPABILITIES_CHANGED
public static final String ACTION_GNSS_CAPABILITIES_CHANGED
Broadcast intent action when GNSS capabilities change. This is most common at boot time as
 GNSS capabilities are queried from the chipset. Includes an intent extra,
 EXTRA_GNSS_CAPABILITIES, with the new GnssCapabilities.
Constant Value: "android.location.action.GNSS_CAPABILITIES_CHANGED"
EXTRA_GNSS_CAPABILITIES
public static final String EXTRA_GNSS_CAPABILITIES
Intent extra included with ACTION_GNSS_CAPABILITIES_CHANGED broadcasts, containing
 the new GnssCapabilities.
See also:
Constant Value: "android.location.extra.GNSS_CAPABILITIES"
EXTRA_LOCATION_ENABLED
public static final String EXTRA_LOCATION_ENABLED
Intent extra included with MODE_CHANGED_ACTION broadcasts, containing the boolean
 enabled state of location.
See also:
Constant Value: "android.location.extra.LOCATION_ENABLED"
EXTRA_PROVIDER_ENABLED
public static final String EXTRA_PROVIDER_ENABLED
Intent extra included with PROVIDERS_CHANGED_ACTION broadcasts, containing the
 boolean enabled state of the location provider that has changed.
Constant Value: "android.location.extra.PROVIDER_ENABLED"
EXTRA_PROVIDER_NAME
public static final String EXTRA_PROVIDER_NAME
Intent extra included with PROVIDERS_CHANGED_ACTION broadcasts, containing the name
 of the location provider that has changed.
Constant Value: "android.location.extra.PROVIDER_NAME"
FUSED_PROVIDER
public static final String FUSED_PROVIDER
Standard name of the fused location provider.
If present, this provider may combine inputs from several other location providers to
 provide the best possible location fix. It is implicitly used for all requestLocationUpdates
 APIs that involve a Criteria.
Constant Value: "fused"
GPS_PROVIDER
public static final String GPS_PROVIDER
Standard name of the GNSS location provider.
If present, this provider determines location using GNSS satellites. The responsiveness and accuracy of location fixes may depend on GNSS signal conditions.
Locations returned from this provider are with respect to the primary GNSS antenna
 position within the device. getGnssAntennaInfos() may be used to determine the GNSS
 antenna position with respect to the Android Coordinate System, and convert between them if
 necessary. This is generally only necessary for high accuracy applications.
 
The extras Bundle for locations derived by this location provider may contain the following key/value pairs:
- satellites - the number of satellites used to derive the fix
Constant Value: "gps"
KEY_FLUSH_COMPLETE
public static final String KEY_FLUSH_COMPLETE
Key used for an extra holding an integer request code when location flush completion is sent using a PendingIntent.
See also:
Constant Value: "flushComplete"
KEY_LOCATIONS
public static final String KEY_LOCATIONS
Key used for an extra holding a array of Locations when a location change is sent
 using a PendingIntent. This key will only be present if the location change includes
 multiple (ie, batched) locations, otherwise only KEY_LOCATION_CHANGED will be
 present. Use Intent.getParcelableArrayExtra(String) to retrieve the locations.
 
The array of locations will never be empty, and will ordered from earliest location to
 latest location, the same as with LocationListener.onLocationChanged(List).
Constant Value: "locations"
KEY_LOCATION_CHANGED
public static final String KEY_LOCATION_CHANGED
Key used for an extra holding a Location value when a location change is sent using
 a PendingIntent. If the location change includes a list of batched locations via
 KEY_LOCATIONS then this key will still be present, and will hold the last location
 in the batch. Use Intent.getParcelableExtra(String) to retrieve the location.
Constant Value: "location"
KEY_PROVIDER_ENABLED
public static final String KEY_PROVIDER_ENABLED
Key used for an extra holding a boolean enabled/disabled status value when a provider enabled/disabled event is broadcast using a PendingIntent.
Constant Value: "providerEnabled"
KEY_PROXIMITY_ENTERING
public static final String KEY_PROXIMITY_ENTERING
Key used for the Bundle extra holding a boolean indicating whether a proximity alert is entering (true) or exiting (false)..
Constant Value: "entering"
KEY_STATUS_CHANGED
public static final String KEY_STATUS_CHANGED
      This constant was deprecated
      in API level 29.
    Status changes are deprecated and no longer broadcast from Android Q onwards.
  
This key is no longer in use.
Key used for a Bundle extra holding an Integer status value when a status change is broadcast using a PendingIntent.
Constant Value: "status"
MODE_CHANGED_ACTION
public static final String MODE_CHANGED_ACTION
Broadcast intent action when the device location enabled state changes. From Android R and
 above, will include a boolean intent extra, EXTRA_LOCATION_ENABLED, with the enabled
 state of location.
Constant Value: "android.location.MODE_CHANGED"
NETWORK_PROVIDER
public static final String NETWORK_PROVIDER
Standard name of the network location provider.
If present, this provider determines location based on nearby of cell tower and WiFi access points. Operation of this provider may require a data connection.
Constant Value: "network"
PASSIVE_PROVIDER
public static final String PASSIVE_PROVIDER
A special location provider for receiving locations without actively initiating a location fix. This location provider is always present.
This provider can be used to passively receive location updates when other applications or services request them without actually requesting the locations yourself. This provider will only return locations generated by other providers.
Constant Value: "passive"
PROVIDERS_CHANGED_ACTION
public static final String PROVIDERS_CHANGED_ACTION
Broadcast intent action when the set of enabled location providers changes. To check the
 status of a provider, use isProviderEnabled(java.lang.String). From Android Q and above, will
 include a string intent extra, EXTRA_PROVIDER_NAME, with the name of the provider
 whose state has changed. From Android R and above, will include a boolean intent extra,
 EXTRA_PROVIDER_ENABLED, with the enabled state of the provider.
Constant Value: "android.location.PROVIDERS_CHANGED"
Public methods
addGpsStatusListener
public boolean addGpsStatusListener (GpsStatus.Listener listener)
      This method was deprecated
      in API level 24.
    Use registerGnssStatusCallback(android.location.GnssStatus.Callback, android.os.Handler) or registerGnssStatusCallback(java.util.concurrent.Executor, android.location.GnssStatus.Callback) instead.
  
Adds a GPS status listener.
 
 Requires Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| listener | GpsStatus.Listener: GPS status listener object to register | 
| Returns | |
|---|---|
| boolean | true if the listener was successfully added | 
| Throws | |
|---|---|
| SecurityException | if the ACCESS_FINE_LOCATION permission is not present | 
addNmeaListener
public boolean addNmeaListener (OnNmeaMessageListener listener, Handler handler)
Adds an NMEA listener.
See addNmeaListener(java.util.concurrent.Executor, android.location.OnNmeaMessageListener) for more detail on how this
 method works.
 
 Requires Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| listener | OnNmeaMessageListener: the listener to register
 This value cannot benull. | 
| handler | Handler: the handler that the listener runs on
 This value may benull. | 
| Returns | |
|---|---|
| boolean | truealways | 
| Throws | |
|---|---|
| IllegalArgumentException | if listener is null | 
| SecurityException | if the ACCESS_FINE_LOCATION permission is not present | 
addNmeaListener
public boolean addNmeaListener (OnNmeaMessageListener listener)
      This method was deprecated
      in API level 30.
    Use addNmeaListener(android.location.OnNmeaMessageListener, android.os.Handler) or addNmeaListener(java.util.concurrent.Executor, android.location.OnNmeaMessageListener) instead.
  
Adds an NMEA listener.
See addNmeaListener(java.util.concurrent.Executor, android.location.OnNmeaMessageListener) for more detail on how this
 method works.
 
 Requires Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| listener | OnNmeaMessageListener: the listener to register
 This value cannot benull. | 
| Returns | |
|---|---|
| boolean | truealways | 
| Throws | |
|---|---|
| SecurityException | if the ACCESS_FINE_LOCATION permission is not present | 
addNmeaListener
public boolean addNmeaListener (GpsStatus.NmeaListener listener)
      This method was deprecated
      in API level 24.
    Use addNmeaListener(android.location.OnNmeaMessageListener, android.os.Handler) or addNmeaListener(java.util.concurrent.Executor, android.location.OnNmeaMessageListener) instead.
  
No-op method to keep backward-compatibility.
 
 Requires Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| listener | GpsStatus.NmeaListener: This value cannot benull. | 
| Returns | |
|---|---|
| boolean | |
addNmeaListener
public boolean addNmeaListener (Executor executor, OnNmeaMessageListener listener)
Adds an NMEA listener. GNSS NMEA information will only be received while the
 GPS_PROVIDER is enabled, and while the client app is in the foreground.
 
 Requires Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| executor | Executor: the executor that the listener runs on
 This value cannot benull.
 Callback and listener events are dispatched through thisExecutor, providing an easy way to control which thread is
 used. To dispatch events through the main thread of your
 application, you can useContext.getMainExecutor().
 Otherwise, provide anExecutorthat dispatches to an appropriate thread. | 
| listener | OnNmeaMessageListener: the listener to register
 This value cannot benull. | 
| Returns | |
|---|---|
| boolean | truealways | 
| Throws | |
|---|---|
| IllegalArgumentException | if executor is null | 
| IllegalArgumentException | if listener is null | 
| SecurityException | if the ACCESS_FINE_LOCATION permission is not present | 
addProximityAlert
public void addProximityAlert (double latitude, 
                double longitude, 
                float radius, 
                long expiration, 
                PendingIntent pendingIntent)Sets a proximity alert for the location given by the position (latitude, longitude) and the given radius.
When the device detects that it has entered or exited the area surrounding the location, the given PendingIntent will be fired.
The fired intent will have a boolean extra added with key KEY_PROXIMITY_ENTERING.
 If the value is true, the device is entering the proximity region; if false, it is exiting.
 
Due to the approximate nature of position estimation, if the device passes through the given area briefly, it is possible that no Intent will be fired. Similarly, an intent could be fired if the device passes very close to the given area but does not actually enter it.
Before API version 17, this method could be used with
 Manifest.permission.ACCESS_FINE_LOCATION or
 Manifest.permission.ACCESS_COARSE_LOCATION. From API version 17 and onwards,
 this method requires Manifest.permission.ACCESS_FINE_LOCATION permission.
 
 Requires Manifest.permission.ACCESS_COARSE_LOCATION or Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| latitude | double: the latitude of the central point of the alert region | 
| longitude | double: the longitude of the central point of the alert region | 
| radius | float: the radius of the central point of the alert region in meters | 
| expiration | long: expiration realtime for this proximity alert in milliseconds, or -1 to
                      indicate no expiration | 
| pendingIntent | PendingIntent: aPendingIntentthat will sent when entry to or exit from the
                      alert region is detected
 This value cannot benull. | 
| Throws | |
|---|---|
| SecurityException | if Manifest.permission.ACCESS_FINE_LOCATIONpermission is not present | 
addTestProvider
public void addTestProvider (String provider, ProviderProperties properties)
Creates a test location provider and adds it to the set of active providers. This provider will replace any provider with the same name that exists prior to this call.
| Parameters | |
|---|---|
| provider | String: the provider name
 This value cannot benull. | 
| properties | ProviderProperties: This value cannot benull. | 
| Throws | |
|---|---|
| IllegalArgumentException | if provider is null | 
| IllegalArgumentException | if properties is null | 
| SecurityException | if mock location app opis not set toallowedfor your app. | 
addTestProvider
public void addTestProvider (String provider, ProviderProperties properties, Set<String> extraAttributionTags)
Creates a test location provider and adds it to the set of active providers. This provider will replace any provider with the same name that exists prior to this call.
| Parameters | |
|---|---|
| provider | String: the provider name
 This value cannot benull. | 
| properties | ProviderProperties: the provider properties
 This value cannot benull. | 
| extraAttributionTags | Set: additional attribution tags associated with this provider
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalArgumentException | if provider is null | 
| IllegalArgumentException | if properties is null | 
| SecurityException | if mock location app opis not set toallowedfor your app. | 
addTestProvider
public void addTestProvider (String provider, boolean requiresNetwork, boolean requiresSatellite, boolean requiresCell, boolean hasMonetaryCost, boolean supportsAltitude, boolean supportsSpeed, boolean supportsBearing, int powerUsage, int accuracy)
Creates a test location provider and adds it to the set of active providers. This provider will replace any provider with the same name that exists prior to this call.
| Parameters | |
|---|---|
| provider | String: the provider name
 This value cannot benull. | 
| requiresNetwork | boolean | 
| requiresSatellite | boolean | 
| requiresCell | boolean | 
| hasMonetaryCost | boolean | 
| supportsAltitude | boolean | 
| supportsSpeed | boolean | 
| supportsBearing | boolean | 
| powerUsage | int: Value isProviderProperties.POWER_USAGE_LOW,ProviderProperties.POWER_USAGE_MEDIUM, orProviderProperties.POWER_USAGE_HIGH | 
| accuracy | int: Value isProviderProperties.ACCURACY_FINE, orProviderProperties.ACCURACY_COARSE | 
| Throws | |
|---|---|
| IllegalArgumentException | if provider is null | 
| SecurityException | if mock location app opis not set toallowedfor your app. | 
clearTestProviderEnabled
public void clearTestProviderEnabled (String provider)
      This method was deprecated
      in API level 29.
    Use setTestProviderEnabled(java.lang.String, boolean) instead.
  
Equivalent to calling setTestProviderEnabled(java.lang.String, boolean) to disable a test
 provider.
| Parameters | |
|---|---|
| provider | String: This value cannot benull. | 
clearTestProviderLocation
public void clearTestProviderLocation (String provider)
      This method was deprecated
      in API level 29.
    This method has always been a no-op, and may be removed in the future.
  
Does nothing.
| Parameters | |
|---|---|
| provider | String: This value cannot benull. | 
clearTestProviderStatus
public void clearTestProviderStatus (String provider)
      This method was deprecated
      in API level 29.
    This method has no effect.
  
This method has no effect as provider status has been deprecated and is no longer supported.
| Parameters | |
|---|---|
| provider | String: This value cannot benull. | 
getAllProviders
public List<String> getAllProviders ()
Returns a list of the names of all available location providers. All providers are returned, including those that are currently disabled.
| Returns | |
|---|---|
| List<String> | list of provider names
 This value cannot be null. | 
getBestProvider
public String getBestProvider (Criteria criteria, boolean enabledOnly)
      This method was deprecated
      in API level 34.
    Criteria based APIs are deprecated, prefer to select a provider explicitly.
  
Returns the name of the provider that best meets the given criteria. Only providers that are permitted to be accessed by the caller will be returned. If several providers meet the criteria, the one with the best accuracy is returned. If no provider meets the criteria, the criteria are loosened in the following order:
- power requirement
- accuracy
- bearing
- speed
- altitude
Note that the requirement on monetary cost is not removed in this process.
| Parameters | |
|---|---|
| criteria | Criteria: the criteria that need to be matched
 This value cannot benull. | 
| enabledOnly | boolean: if true then only enabled providers are included | 
| Returns | |
|---|---|
| String | name of the provider that best matches the criteria, or null if none match | 
| Throws | |
|---|---|
| IllegalArgumentException | if criteria is null | 
getCurrentLocation
public void getCurrentLocation (String provider, LocationRequest locationRequest, CancellationSignal cancellationSignal, Executor executor, Consumer<Location> consumer)
Asynchronously returns a single current location fix from the given provider based on the
 given LocationRequest. This may activate sensors in order to compute a new location,
 unlike getLastKnownLocation(java.lang.String), which will only return a cached fix if
 available. The given callback will be invoked once and only once, either with a valid
 location or with a null location if the provider was unable to generate a valid location.
 
A client may supply an optional CancellationSignal. If this is used to cancel the
 operation, no callback should be expected after the cancellation.
 
This method may return locations from the very recent past (on the order of several seconds), but will never return older locations (for example, several minutes old or older). Clients may rely upon the guarantee that if this method returns a location, it will represent the best estimation of the location of the device in the present moment.
Clients calling this method from the background may notice that the method fails to
 determine a valid location fix more often than while in the foreground. Background
 applications may be throttled in their location accesses to some degree.
 The given location request may be used to provide hints on how a fresh location is computed
 if necessary. In particular LocationRequest.getDurationMillis() can be used to
 provide maximum duration allowed before failing. The system will always cap the maximum
 amount of time a request for current location may run to some reasonable value (less than a
 minute for example) before the request is failed.
 
 Requires Manifest.permission.ACCESS_COARSE_LOCATION or Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| provider | String: a provider listed bygetAllProviders()This value cannot benull. | 
| locationRequest | LocationRequest: the location request containing location parameters
 This value cannot benull. | 
| cancellationSignal | CancellationSignal: an optional signal that allows for cancelling this call
 This value may benull. | 
| executor | Executor: the callback will take place on thisExecutorThis value cannot benull.
 Callback and listener events are dispatched through thisExecutor, providing an easy way to control which thread is
 used. To dispatch events through the main thread of your
 application, you can useContext.getMainExecutor().
 Otherwise, provide anExecutorthat dispatches to an appropriate thread. | 
| consumer | Consumer: the callback invoked with either aLocationor null | 
| Throws | |
|---|---|
| IllegalArgumentException | if provider is null or doesn't exist | 
| IllegalArgumentException | if executor is null | 
| IllegalArgumentException | if consumer is null | 
| SecurityException | if no suitable permission is present | 
getCurrentLocation
public void getCurrentLocation (String provider, CancellationSignal cancellationSignal, Executor executor, Consumer<Location> consumer)
Asynchronously returns a single current location fix from the given provider.
See
 getCurrentLocation(java.lang.String, android.location.LocationRequest, android.os.CancellationSignal, java.util.concurrent.Executor, java.util.function.Consumer)
 for more information.
 
 Requires Manifest.permission.ACCESS_COARSE_LOCATION or Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| provider | String: a provider listed bygetAllProviders()This value cannot benull. | 
| cancellationSignal | CancellationSignal: an optional signal that allows for cancelling this call
 This value may benull. | 
| executor | Executor: the callback will take place on thisExecutorThis value cannot benull.
 Callback and listener events are dispatched through thisExecutor, providing an easy way to control which thread is
 used. To dispatch events through the main thread of your
 application, you can useContext.getMainExecutor().
 Otherwise, provide anExecutorthat dispatches to an appropriate thread. | 
| consumer | Consumer: the callback invoked with either aLocationor null | 
| Throws | |
|---|---|
| IllegalArgumentException | if provider is null or doesn't exist | 
| IllegalArgumentException | if executor is null | 
| IllegalArgumentException | if consumer is null | 
| SecurityException | if no suitable permission is present | 
getGnssAntennaInfos
public List<GnssAntennaInfo> getGnssAntennaInfos ()
Returns the current list of GNSS antenna infos, or null if unknown or unsupported.
| Returns | |
|---|---|
| List<GnssAntennaInfo> | |
See also:
getGnssCapabilities
public GnssCapabilities getGnssCapabilities ()
Returns the supported capabilities of the GNSS chipset.
| Returns | |
|---|---|
| GnssCapabilities | This value cannot be null. | 
getGnssHardwareModelName
public String getGnssHardwareModelName ()
Returns the model name (including vendor and hardware/software version) of the GNSS hardware driver, or null if this information is not available.
No device-specific serial number or ID is returned from this API.
| Returns | |
|---|---|
| String | |
getGnssYearOfHardware
public int getGnssYearOfHardware ()
Returns the model year of the GNSS hardware and software build, or 0 if the model year is before 2016.
| Returns | |
|---|---|
| int | |
getGpsStatus
public GpsStatus getGpsStatus (GpsStatus status)
      This method was deprecated
      in API level 24.
    GpsStatus APIs are deprecated, use GnssStatus APIs instead. No longer
 supported in apps targeting S and above.
  
Retrieves information about the current status of the GPS engine. This should only be called
 from within the GpsStatus.Listener.onGpsStatusChanged callback to ensure that the
 data is copied atomically.
 The caller may either pass in an existing GpsStatus object to be overwritten, or pass
 null to create a new GpsStatus object.
 
 Requires Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| status | GpsStatus: object containing GPS status details, or null. | 
| Returns | |
|---|---|
| GpsStatus | status object containing updated GPS status. | 
getLastKnownLocation
public Location getLastKnownLocation (String provider)
Gets the last known location from the given provider, or null if there is no last known location. The returned location may be quite old in some circumstances, so the age of the location should always be checked.
This will never activate sensors to compute a new location, and will only ever return a cached location.
See also getCurrentLocation(java.lang.String, android.os.CancellationSignal, java.util.concurrent.Executor, java.util.function.Consumer) which
 will always attempt to return a current location, but will potentially use additional power
 in the course of the attempt as compared to this method.
 
 Requires Manifest.permission.ACCESS_COARSE_LOCATION or Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| provider | String: a provider listed bygetAllProviders()This value cannot benull. | 
| Returns | |
|---|---|
| Location | the last known location for the given provider, or null if not available | 
| Throws | |
|---|---|
| SecurityException | if no suitable permission is present | 
| IllegalArgumentException | if provider is null or doesn't exist | 
getProvider
public LocationProvider getProvider (String provider)
      This method was deprecated
      in API level 31.
    This method has no way to indicate that a provider's properties are unknown, and
 so may return incorrect results on rare occasions. Use getProviderProperties(java.lang.String)
 instead.
  
Returns the information about the location provider with the given name, or null if no provider exists by that name.
| Parameters | |
|---|---|
| provider | String: a provider listed bygetAllProviders()This value cannot benull. | 
| Returns | |
|---|---|
| LocationProvider | location provider information, or null if provider does not exist | 
| Throws | |
|---|---|
| IllegalArgumentException | if provider is null | 
getProviderProperties
public ProviderProperties getProviderProperties (String provider)
Returns the properties of the given provider, or null if the properties are currently unknown. Provider properties may change over time, although this is discouraged, and should be rare. The most common transition is when provider properties go from being unknown to known, which is most common near boot time.
| Parameters | |
|---|---|
| provider | String: a provider listed bygetAllProviders()This value cannot benull. | 
| Returns | |
|---|---|
| ProviderProperties | location provider properties, or null if properties are currently unknown | 
| Throws | |
|---|---|
| IllegalArgumentException | if provider is null or does not exist | 
getProviders
public List<String> getProviders (boolean enabledOnly)
Returns a list of the names of available location providers. If enabledOnly is false,
 this is functionally the same as getAllProviders().
| Parameters | |
|---|---|
| enabledOnly | boolean: if true then only enabled providers are included | 
| Returns | |
|---|---|
| List<String> | list of provider names
 This value cannot be null. | 
getProviders
public List<String> getProviders (Criteria criteria, boolean enabledOnly)
      This method was deprecated
      in API level 34.
    Criteria based APIs are deprecated, prefer to select a provider explicitly.
  
Returns a list of the names of available location providers that satisfy the given criteria.
| Parameters | |
|---|---|
| criteria | Criteria: the criteria that providers must match
 This value cannot benull. | 
| enabledOnly | boolean: if true then only enabled providers are included | 
| Returns | |
|---|---|
| List<String> | list of provider names
 This value cannot be null. | 
| Throws | |
|---|---|
| IllegalArgumentException | if criteria is null | 
hasProvider
public boolean hasProvider (String provider)
Returns true if the given location provider exists on this device, irrespective of whether it is currently enabled or not.
| Parameters | |
|---|---|
| provider | String: a potential location provider
 This value cannot benull. | 
| Returns | |
|---|---|
| boolean | true if the location provider exists, false otherwise | 
| Throws | |
|---|---|
| IllegalArgumentException | if provider is null | 
isLocationEnabled
public boolean isLocationEnabled ()
Returns the current enabled/disabled state of location. To listen for changes, see
 MODE_CHANGED_ACTION.
| Returns | |
|---|---|
| boolean | true if location is enabled and false if location is disabled. | 
isProviderEnabled
public boolean isProviderEnabled (String provider)
Returns the current enabled/disabled status of the given provider. To listen for changes, see
 PROVIDERS_CHANGED_ACTION.
 Before API version Build.VERSION_CODES.LOLLIPOP, this method would throw
 SecurityException if the location permissions were not sufficient to use the
 specified provider.
| Parameters | |
|---|---|
| provider | String: a provider listed bygetAllProviders()This value cannot benull. | 
| Returns | |
|---|---|
| boolean | true if the provider exists and is enabled | 
| Throws | |
|---|---|
| IllegalArgumentException | if provider is null | 
registerAntennaInfoListener
public boolean registerAntennaInfoListener (Executor executor, GnssAntennaInfo.Listener listener)
Registers a GNSS antenna info listener that will receive all changes to antenna info. Use
 getGnssAntennaInfos() to get current antenna info.
 
Not all GNSS chipsets support antenna info updates, see getGnssCapabilities(). If
 unsupported, the listener will never be invoked.
 
Prior to Android S, this requires the Manifest.permission.ACCESS_FINE_LOCATION
 permission.
| Parameters | |
|---|---|
| executor | Executor: the executor that the listener runs on
 This value cannot benull.
 Callback and listener events are dispatched through thisExecutor, providing an easy way to control which thread is
 used. To dispatch events through the main thread of your
 application, you can useContext.getMainExecutor().
 Otherwise, provide anExecutorthat dispatches to an appropriate thread. | 
| listener | GnssAntennaInfo.Listener: the listener to register
 This value cannot benull. | 
| Returns | |
|---|---|
| boolean | truealways | 
| Throws | |
|---|---|
| IllegalArgumentException | if executor is null | 
| IllegalArgumentException | if listener is null | 
registerGnssMeasurementsCallback
public boolean registerGnssMeasurementsCallback (Executor executor, GnssMeasurementsEvent.Callback callback)
Registers a GNSS measurements callback. GNSS measurements information will only be received
 while the GPS_PROVIDER is enabled, and while the client app is in the foreground.
 
Not all GNSS chipsets support measurements updates, see getGnssCapabilities().
 
On Android R devices that have not yet upgraded to Android R QPR1, using
 this API will cause unavoidable crashes in the client application when GNSS measurements
 are received. If a client needs to receive GNSS measurements on Android R devices that have
 not been upgraded to QPR1, clients are instead encouraged to use
 LocationManagerCompat.registerGnssMeasurementsCallback()
 from the compat libraries instead to avoid this crash.
 
 Requires Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| executor | Executor: the executor that the callback runs on
 This value cannot benull.
 Callback and listener events are dispatched through thisExecutor, providing an easy way to control which thread is
 used. To dispatch events through the main thread of your
 application, you can useContext.getMainExecutor().
 Otherwise, provide anExecutorthat dispatches to an appropriate thread. | 
| callback | GnssMeasurementsEvent.Callback: the callback to register
 This value cannot benull. | 
| Returns | |
|---|---|
| boolean | truealways | 
| Throws | |
|---|---|
| IllegalArgumentException | if executor is null | 
| IllegalArgumentException | if callback is null | 
| SecurityException | if the ACCESS_FINE_LOCATION permission is not present | 
registerGnssMeasurementsCallback
public boolean registerGnssMeasurementsCallback (GnssMeasurementsEvent.Callback callback)
      This method was deprecated
      in API level 30}.
    Use registerGnssMeasurementsCallback(GnssMeasurementsEvent.Callback, Handler) or registerGnssMeasurementsCallback(Executor, GnssMeasurementsEvent.Callback) instead.
 
 Requires Manifest.permission.ACCESS_FINE_LOCATION
  
Registers a GNSS measurements callback which will run on a binder thread.
See {@link #registerGnssMeasurementsCallback(java.util.concurrent.Executor,android.location.GnssMeasurementsEvent.Callback) for more detail on how this method works.
| Parameters | |
|---|---|
| callback | GnssMeasurementsEvent.Callback: aGnssMeasurementsEvent.Callbackobject to register | 
| Returns | |
|---|---|
| boolean | truealways | 
registerGnssMeasurementsCallback
public boolean registerGnssMeasurementsCallback (GnssMeasurementRequest request, Executor executor, GnssMeasurementsEvent.Callback callback)
Registers a GNSS measurement callback.
 
 Requires Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| request | GnssMeasurementRequest: extra parameters to pass to GNSS measurement provider. For example, ifGnssMeasurementRequest.isFullTracking()is true, GNSS chipset switches off
                 duty cycling.
 This value cannot benull. | 
| executor | Executor: the executor that the callback runs on
 This value cannot benull.
 Callback and listener events are dispatched through thisExecutor, providing an easy way to control which thread is
 used. To dispatch events through the main thread of your
 application, you can useContext.getMainExecutor().
 Otherwise, provide anExecutorthat dispatches to an appropriate thread. | 
| callback | GnssMeasurementsEvent.Callback: aGnssMeasurementsEvent.Callbackobject to register.
 This value cannot benull. | 
| Returns | |
|---|---|
| boolean | truealways if the callback was added successfully,falseotherwise. | 
| Throws | |
|---|---|
| IllegalArgumentException | if request is null | 
| IllegalArgumentException | if executor is null | 
| IllegalArgumentException | if callback is null | 
| SecurityException | if the ACCESS_FINE_LOCATION permission is not present | 
registerGnssMeasurementsCallback
public boolean registerGnssMeasurementsCallback (GnssMeasurementsEvent.Callback callback, Handler handler)
Registers a GNSS measurements callback.
See {@link #registerGnssMeasurementsCallback(java.util.concurrent.Executor,android.location.GnssMeasurementsEvent.Callback) for more detail on how this method works.
| Parameters | |
|---|---|
| callback | GnssMeasurementsEvent.Callback: aGnssMeasurementsEvent.Callbackobject to register | 
| handler | Handler: the handler that the callback runs on | 
| Returns | |
|---|---|
| boolean | truealways | 
| Throws | |
|---|---|
| IllegalArgumentException | if callback is null | 
| SecurityException | if the ACCESS_FINE_LOCATION permission is not present Requires Manifest.permission.ACCESS_FINE_LOCATION | 
registerGnssNavigationMessageCallback
public boolean registerGnssNavigationMessageCallback (GnssNavigationMessage.Callback callback, Handler handler)
Registers a GNSS navigation message callback.
See
 registerGnssNavigationMessageCallback(java.util.concurrent.Executor, android.location.GnssNavigationMessage.Callback) for
 more detail on how this method works.
 
 Requires Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| callback | GnssNavigationMessage.Callback: the callback to register
 This value cannot benull. | 
| handler | Handler: the handler that the callback runs on
 This value may benull. | 
| Returns | |
|---|---|
| boolean | truealways | 
| Throws | |
|---|---|
| IllegalArgumentException | if callback is null | 
| SecurityException | if the ACCESS_FINE_LOCATION permission is not present | 
registerGnssNavigationMessageCallback
public boolean registerGnssNavigationMessageCallback (Executor executor, GnssNavigationMessage.Callback callback)
Registers a GNSS navigation message callback. GNSS navigation messages will only be received
 while the GPS_PROVIDER is enabled, and while the client app is in the foreground.
 
Not all GNSS chipsets support navigation message updates, see
 getGnssCapabilities().
 
 Requires Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| executor | Executor: the executor that the callback runs on
 This value cannot benull.
 Callback and listener events are dispatched through thisExecutor, providing an easy way to control which thread is
 used. To dispatch events through the main thread of your
 application, you can useContext.getMainExecutor().
 Otherwise, provide anExecutorthat dispatches to an appropriate thread. | 
| callback | GnssNavigationMessage.Callback: the callback to register
 This value cannot benull. | 
| Returns | |
|---|---|
| boolean | truealways | 
| Throws | |
|---|---|
| IllegalArgumentException | if executor is null | 
| IllegalArgumentException | if callback is null | 
| SecurityException | if the ACCESS_FINE_LOCATION permission is not present | 
registerGnssNavigationMessageCallback
public boolean registerGnssNavigationMessageCallback (GnssNavigationMessage.Callback callback)
      This method was deprecated
      in API level 30.
    Use registerGnssNavigationMessageCallback(android.location.GnssNavigationMessage.Callback, android.os.Handler) or registerGnssNavigationMessageCallback(java.util.concurrent.Executor, android.location.GnssNavigationMessage.Callback) instead.
  
Registers a GNSS navigation message callback which will run on a binder thread.
See
 registerGnssNavigationMessageCallback(java.util.concurrent.Executor, android.location.GnssNavigationMessage.Callback) for
 more detail on how this method works.
| Parameters | |
|---|---|
| callback | GnssNavigationMessage.Callback: the callback to register
 This value cannot benull. | 
| Returns | |
|---|---|
| boolean | truealways | 
registerGnssStatusCallback
public boolean registerGnssStatusCallback (GnssStatus.Callback callback)
      This method was deprecated
      in API level 30.
    Use registerGnssStatusCallback(android.location.GnssStatus.Callback, android.os.Handler) or registerGnssStatusCallback(java.util.concurrent.Executor, android.location.GnssStatus.Callback) instead.
  
Registers a GNSS status callback. This method must be called from a Looper thread,
 and callbacks will occur on that looper.
 
See registerGnssStatusCallback(java.util.concurrent.Executor, android.location.GnssStatus.Callback) for more detail on
 how this method works.
 
 Requires Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| callback | GnssStatus.Callback: the callback to register
 This value cannot benull. | 
| Returns | |
|---|---|
| boolean | truealways | 
| Throws | |
|---|---|
| SecurityException | if the ACCESS_FINE_LOCATION permission is not present | 
registerGnssStatusCallback
public boolean registerGnssStatusCallback (GnssStatus.Callback callback, Handler handler)
Registers a GNSS status callback.
See registerGnssStatusCallback(java.util.concurrent.Executor, android.location.GnssStatus.Callback) for more detail on
 how this method works.
 
 Requires Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| callback | GnssStatus.Callback: the callback to register
 This value cannot benull. | 
| handler | Handler: the handler the callback runs on
 This value may benull. | 
| Returns | |
|---|---|
| boolean | truealways | 
| Throws | |
|---|---|
| IllegalArgumentException | if callback is null | 
| SecurityException | if the ACCESS_FINE_LOCATION permission is not present | 
registerGnssStatusCallback
public boolean registerGnssStatusCallback (Executor executor, GnssStatus.Callback callback)
Registers a GNSS status callback. GNSS status information will only be received while the
 GPS_PROVIDER is enabled, and while the client app is in the foreground.
 
 Requires Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| executor | Executor: the executor that the callback runs on
 This value cannot benull.
 Callback and listener events are dispatched through thisExecutor, providing an easy way to control which thread is
 used. To dispatch events through the main thread of your
 application, you can useContext.getMainExecutor().
 Otherwise, provide anExecutorthat dispatches to an appropriate thread. | 
| callback | GnssStatus.Callback: the callback to register
 This value cannot benull. | 
| Returns | |
|---|---|
| boolean | truealways | 
| Throws | |
|---|---|
| IllegalArgumentException | if executor is null | 
| IllegalArgumentException | if callback is null | 
| SecurityException | if the ACCESS_FINE_LOCATION permission is not present | 
removeGpsStatusListener
public void removeGpsStatusListener (GpsStatus.Listener listener)
      This method was deprecated
      in API level 24.
    use unregisterGnssStatusCallback(android.location.GnssStatus.Callback) instead. No longer
 supported in apps targeting S and above.
  
Removes a GPS status listener.
| Parameters | |
|---|---|
| listener | GpsStatus.Listener: GPS status listener object to remove | 
removeNmeaListener
public void removeNmeaListener (OnNmeaMessageListener listener)
Removes an NMEA listener.
| Parameters | |
|---|---|
| listener | OnNmeaMessageListener: aOnNmeaMessageListenerobject to remove
 This value cannot benull. | 
removeNmeaListener
public void removeNmeaListener (GpsStatus.NmeaListener listener)
      This method was deprecated
      in API level 24.
    Use removeNmeaListener(android.location.OnNmeaMessageListener) instead.
  
No-op method to keep backward-compatibility.
| Parameters | |
|---|---|
| listener | GpsStatus.NmeaListener: This value cannot benull. | 
removeProximityAlert
public void removeProximityAlert (PendingIntent intent)
Removes the proximity alert with the given PendingIntent.
Before API version 17, this method could be used with
 Manifest.permission.ACCESS_FINE_LOCATION or
 Manifest.permission.ACCESS_COARSE_LOCATION.
 From API version 17 and onwards, this method requires
 Manifest.permission.ACCESS_FINE_LOCATION permission.
 
 Requires Manifest.permission.ACCESS_COARSE_LOCATION or Manifest.permission.ACCESS_FINE_LOCATION
 
 Requires Manifest.permission.ACCESS_COARSE_LOCATION or Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| intent | PendingIntent: the PendingIntent that no longer needs to be notified of
 proximity alerts
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalArgumentException | if intent is null | 
| SecurityException | if Manifest.permission.ACCESS_FINE_LOCATIONpermission is not present | 
removeTestProvider
public void removeTestProvider (String provider)
Removes the test location provider with the given name or does nothing if no such test location provider exists.
| Parameters | |
|---|---|
| provider | String: the provider name
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalArgumentException | if provider is null | 
| SecurityException | if mock location app opis not set toallowedfor your app. | 
removeUpdates
public void removeUpdates (LocationListener listener)
Removes all location updates for the specified LocationListener. The given listener
 is guaranteed not to receive any invocations that happens-after this method is
 invoked.
 
If the given listener has any batched requests, this method will not flush any incomplete
 location batches before stopping location updates. If you wish to flush any pending locations
 before stopping, you must first call requestFlush(java.lang.String, android.location.LocationListener, int) and
 then call this method once the flush is complete. If this method is invoked before the flush
 is complete, you may not receive the flushed locations.
 
 Requires Manifest.permission.ACCESS_COARSE_LOCATION or Manifest.permission.ACCESS_FINE_LOCATION
 
 Requires Manifest.permission.ACCESS_COARSE_LOCATION or Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| listener | LocationListener: listener that no longer needs location updates
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalArgumentException | if listener is null | 
removeUpdates
public void removeUpdates (PendingIntent pendingIntent)
Removes location updates for the specified PendingIntent. Following this call, the
 PendingIntent will no longer receive location updates.
 
See removeUpdates(android.location.LocationListener) for more detail on how this method works.
| Parameters | |
|---|---|
| pendingIntent | PendingIntent: pending intent that no longer needs location updates
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalArgumentException | if pendingIntent is null | 
requestFlush
public void requestFlush (String provider, LocationListener listener, int requestCode)
Requests that the given provider flush any batched locations to listeners. The given listener
 (registered with the provider) will have LocationListener.onFlushComplete(int)
 invoked with the given result code after any locations that were flushed have been delivered.
 If removeUpdates(android.location.LocationListener) is invoked before the flush callback is executed,
 then the flush callback will never be executed.
| Parameters | |
|---|---|
| provider | String: a provider listed bygetAllProviders()This value cannot benull. | 
| listener | LocationListener: a listener registered under the provider
 This value cannot benull. | 
| requestCode | int: an arbitrary integer passed through toLocationListener.onFlushComplete(int) | 
| Throws | |
|---|---|
| IllegalArgumentException | if provider is null or doesn't exist | 
| IllegalArgumentException | if listener is null or is not registered under the provider | 
requestFlush
public void requestFlush (String provider, PendingIntent pendingIntent, int requestCode)
Requests that the given provider flush any batched locations to listeners. The given
 PendingIntent (registered with the provider) will be sent with KEY_FLUSH_COMPLETE
 present in the extra keys, and requestCode as the corresponding value.
| Parameters | |
|---|---|
| provider | String: a provider listed bygetAllProviders()This value cannot benull. | 
| pendingIntent | PendingIntent: a pendingIntent registered under the provider
 This value cannot benull. | 
| requestCode | int: an arbitrary integer that will be passed back as the extra value forKEY_FLUSH_COMPLETE | 
| Throws | |
|---|---|
| IllegalArgumentException | if provider is null or doesn't exist | 
| IllegalArgumentException | if pending intent is null or is not registered under the provider | 
requestLocationUpdates
public void requestLocationUpdates (String provider, long minTimeMs, float minDistanceM, LocationListener listener)
Register for location updates from the given provider with the given arguments, and a
 callback on the Looper of the calling thread.
 
See requestLocationUpdates(java.lang.String, android.location.LocationRequest, java.util.concurrent.Executor, android.location.LocationListener)
 for more detail on how this method works.
 
 Prior to Jellybean, the minTime parameter was only a hint, and some location
 provider implementations ignored it. For Jellybean and onwards however, it is mandatory for
 Android compatible devices to observe both the minTime and minDistance parameters.
 
 Requires Manifest.permission.ACCESS_COARSE_LOCATION or Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| provider | String: a provider listed bygetAllProviders()This value cannot benull. | 
| minTimeMs | long: minimum time interval between location updates in milliseconds | 
| minDistanceM | float: minimum distance between location updates in meters | 
| listener | LocationListener: the listener to receive location updates
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalArgumentException | if provider is null or doesn't exist | 
| IllegalArgumentException | if listener is null | 
| RuntimeException | if the calling thread has no Looper | 
| SecurityException | if no suitable permission is present | 
requestLocationUpdates
public void requestLocationUpdates (long minTimeMs, 
                float minDistanceM, 
                Criteria criteria, 
                LocationListener listener, 
                Looper looper)
      This method was deprecated
      in API level 31.
    Use
 requestLocationUpdates(java.lang.String, long, float, android.location.LocationListener, android.os.Looper) instead to
 explicitly select a provider.
  
Register for location updates using a provider selected through the given Criteria, and a
 callback on the specified Looper.
 
Note: Since Android KitKat, Criteria requests will always result in using the
 FUSED_PROVIDER.
 
See requestLocationUpdates(java.lang.String, android.location.LocationRequest, java.util.concurrent.Executor, android.location.LocationListener)
 for more detail on how this method works.
 
 Requires Manifest.permission.ACCESS_COARSE_LOCATION or Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| minTimeMs | long: minimum time interval between location updates in milliseconds | 
| minDistanceM | float: minimum distance between location updates in meters | 
| criteria | Criteria: contains parameters to choose the appropriate provider for location updates
 This value cannot benull. | 
| listener | LocationListener: the listener to receive location updates
 This value cannot benull. | 
| looper | Looper: This value may benull. | 
| Throws | |
|---|---|
| IllegalArgumentException | if criteria is null | 
| IllegalArgumentException | if listener is null | 
| SecurityException | if no suitable permission is present | 
requestLocationUpdates
public void requestLocationUpdates (String provider, long minTimeMs, float minDistanceM, LocationListener listener, Looper looper)
Register for location updates from the given provider with the given arguments, and a
 callback on the specified Looper.
 
See requestLocationUpdates(java.lang.String, android.location.LocationRequest, java.util.concurrent.Executor, android.location.LocationListener)
 for more detail on how this method works.
 
Prior to Jellybean, the minTime parameter was only a hint, and some location
 provider implementations ignored it. For Jellybean and onwards however, it is mandatory for
 Android compatible devices to observe both the minTime and minDistance parameters.
 
 Requires Manifest.permission.ACCESS_COARSE_LOCATION or Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| provider | String: a provider listed bygetAllProviders()This value cannot benull. | 
| minTimeMs | long: minimum time interval between location updates in milliseconds | 
| minDistanceM | float: minimum distance between location updates in meters | 
| listener | LocationListener: the listener to receive location updates
 This value cannot benull. | 
| looper | Looper: the looper handling listener callbacks, or null to use the looper of the
                     calling thread | 
| Throws | |
|---|---|
| IllegalArgumentException | if provider is null or doesn't exist | 
| IllegalArgumentException | if listener is null | 
| SecurityException | if no suitable permission is present | 
requestLocationUpdates
public void requestLocationUpdates (String provider, long minTimeMs, float minDistanceM, Executor executor, LocationListener listener)
Register for location updates using the named provider, and a callback on
 the specified Executor.
 
See requestLocationUpdates(java.lang.String, android.location.LocationRequest, java.util.concurrent.Executor, android.location.LocationListener)
 for more detail on how this method works.
 
Prior to Jellybean, the minTime parameter was only a hint, and some location
 provider implementations ignored it. For Jellybean and onwards however, it is mandatory for
 Android compatible devices to observe both the minTime and minDistance parameters.
 
 Requires Manifest.permission.ACCESS_COARSE_LOCATION or Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| provider | String: a provider listed bygetAllProviders()This value cannot benull. | 
| minTimeMs | long: minimum time interval between location updates in milliseconds | 
| minDistanceM | float: minimum distance between location updates in meters | 
| executor | Executor: the executor handling listener callbacks
 This value cannot benull.
 Callback and listener events are dispatched through thisExecutor, providing an easy way to control which thread is
 used. To dispatch events through the main thread of your
 application, you can useContext.getMainExecutor().
 Otherwise, provide anExecutorthat dispatches to an appropriate thread. | 
| listener | LocationListener: the listener to receive location updates
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalArgumentException | if provider is null or doesn't exist | 
| IllegalArgumentException | if executor is null | 
| IllegalArgumentException | if listener is null | 
| SecurityException | if no suitable permission is present | 
requestLocationUpdates
public void requestLocationUpdates (String provider, LocationRequest locationRequest, PendingIntent pendingIntent)
Register for location updates from the specified provider, using a LocationRequest,
 and callbacks delivered via the provided PendingIntent.
 
The delivered pending intents will contain extras with the callback information. The keys
 used for the extras are KEY_LOCATION_CHANGED and KEY_PROVIDER_ENABLED. See
 the documentation for each respective extra key for information on the values.
 
To unregister for location updates, use removeUpdates(android.app.PendingIntent).
 
 Requires Manifest.permission.ACCESS_COARSE_LOCATION or Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| provider | String: a provider listed bygetAllProviders()This value cannot benull. | 
| locationRequest | LocationRequest: the location request containing location parameters
 This value cannot benull. | 
| pendingIntent | PendingIntent: the pending intent to send location updates
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalArgumentException | if provider is null or doesn't exist | 
| IllegalArgumentException | if locationRequest is null | 
| IllegalArgumentException | if pendingIntent is null | 
| SecurityException | if no suitable permission is present | 
requestLocationUpdates
public void requestLocationUpdates (String provider, LocationRequest locationRequest, Executor executor, LocationListener listener)
Register for location updates from the specified provider, using a LocationRequest,
 and a callback on the specified Executor.
 
Only one request can be registered for each unique listener/provider pair, so any subsequent requests with the same provider and listener will overwrite all associated arguments. The same listener may be used across multiple providers with different requests for each provider.
It may take some time to receive the first location update depending on the conditions the
 device finds itself in. In order to take advantage of cached locations, application may
 consider using getLastKnownLocation(java.lang.String) or getCurrentLocation(java.lang.String, android.location.LocationRequest, android.os.CancellationSignal, java.util.concurrent.Executor, java.util.function.Consumer) instead.
 
See LocationRequest documentation for an explanation of various request parameters
 and how they can affect the received locations.
 
If your application wants to passively observe location updates from all providers, then
 use the PASSIVE_PROVIDER. This provider does not turn on or modify active location
 providers, so you do not need to be as careful about minimum time and minimum distance
 parameters. However, if your application performs heavy work on a location update (such as
 network activity) then you should set an explicit fastest interval on your location request
 in case another application enables a location provider with extremely fast updates.
 
In case the provider you have selected is disabled, location updates will cease, and a provider availability update will be sent. As soon as the provider is enabled again, another provider availability update will be sent and location updates will resume.
Locations returned from GPS_PROVIDER are with respect to the primary GNSS antenna
 position within the device. getGnssAntennaInfos() may be used to determine the GNSS
 antenna position with respect to the Android Coordinate System, and convert between them if
 necessary. This is generally only necessary for high accuracy applications.
 
When location callbacks are invoked, the system will hold a wakelock on your application's behalf for some period of time, but not indefinitely. If your application requires a long running wakelock within the location callback, you should acquire it yourself.
Spamming location requests is a drain on system resources, and the system has preventative measures in place to ensure that this behavior will never result in more locations than could be achieved with a single location request with an equivalent interval that is left in place the whole time. As part of this amelioration, applications that target Android S and above may receive cached or historical locations through their listener. These locations will never be older than the interval of the location request.
To unregister for location updates, use removeUpdates(android.location.LocationListener).
 
 Requires Manifest.permission.ACCESS_COARSE_LOCATION or Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| provider | String: a provider listed bygetAllProviders()This value cannot benull. | 
| locationRequest | LocationRequest: the location request containing location parameters
 This value cannot benull. | 
| executor | Executor: the executor handling listener callbacks
 This value cannot benull.
 Callback and listener events are dispatched through thisExecutor, providing an easy way to control which thread is
 used. To dispatch events through the main thread of your
 application, you can useContext.getMainExecutor().
 Otherwise, provide anExecutorthat dispatches to an appropriate thread. | 
| listener | LocationListener: the listener to receive location updates
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalArgumentException | if provider is null or doesn't exist | 
| IllegalArgumentException | if locationRequest is null | 
| IllegalArgumentException | if listener is null | 
| SecurityException | if no suitable permission is present | 
requestLocationUpdates
public void requestLocationUpdates (long minTimeMs, 
                float minDistanceM, 
                Criteria criteria, 
                PendingIntent pendingIntent)
      This method was deprecated
      in API level 31.
    Use requestLocationUpdates(java.lang.String, long, float, android.app.PendingIntent) instead
 to explicitly select a provider.
  
Register for location updates using a provider selected through the given Criteria, and
 callbacks delivered via the provided PendingIntent.
 
Note: Since Android KitKat, Criteria requests will always result in using the
 FUSED_PROVIDER.
 
See requestLocationUpdates(java.lang.String, long, float, android.app.PendingIntent) for more detail on
 how this method works.
 
 Requires Manifest.permission.ACCESS_COARSE_LOCATION or Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| minTimeMs | long: minimum time interval between location updates in milliseconds | 
| minDistanceM | float: minimum distance between location updates in meters | 
| criteria | Criteria: contains parameters to choose the appropriate provider for location updates
 This value cannot benull. | 
| pendingIntent | PendingIntent: the pending intent to send location updates
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalArgumentException | if provider is null or doesn't exist | 
| IllegalArgumentException | if pendingIntent is null | 
| SecurityException | if no suitable permission is present | 
requestLocationUpdates
public void requestLocationUpdates (long minTimeMs, 
                float minDistanceM, 
                Criteria criteria, 
                Executor executor, 
                LocationListener listener)
      This method was deprecated
      in API level 31.
    Use
 requestLocationUpdates(java.lang.String, long, float, java.util.concurrent.Executor, android.location.LocationListener) instead to
 explicitly select a provider.
  
Register for location updates using a provider selected through the given Criteria, and a
 callback on the specified Executor.
 
Note: Since Android KitKat, Criteria requests will always result in using the
 FUSED_PROVIDER.
 
See requestLocationUpdates(java.lang.String, android.location.LocationRequest, java.util.concurrent.Executor, android.location.LocationListener)
 for more detail on how this method works.
 
 Requires Manifest.permission.ACCESS_COARSE_LOCATION or Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| minTimeMs | long: minimum time interval between location updates in milliseconds | 
| minDistanceM | float: minimum distance between location updates in meters | 
| criteria | Criteria: contains parameters to choose the appropriate provider for location updates
 This value cannot benull. | 
| executor | Executor: the executor handling listener callbacks
 This value cannot benull.
 Callback and listener events are dispatched through thisExecutor, providing an easy way to control which thread is
 used. To dispatch events through the main thread of your
 application, you can useContext.getMainExecutor().
 Otherwise, provide anExecutorthat dispatches to an appropriate thread. | 
| listener | LocationListener: the listener to receive location updates
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalArgumentException | if criteria is null | 
| IllegalArgumentException | if executor is null | 
| IllegalArgumentException | if listener is null | 
| SecurityException | if no suitable permission is present | 
requestLocationUpdates
public void requestLocationUpdates (String provider, long minTimeMs, float minDistanceM, PendingIntent pendingIntent)
Register for location updates using the named provider, and callbacks delivered via the
 provided PendingIntent.
 
See requestLocationUpdates(java.lang.String, android.location.LocationRequest, android.app.PendingIntent) for more
 detail on how this method works.
 
 Requires Manifest.permission.ACCESS_COARSE_LOCATION or Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| provider | String: a provider listed bygetAllProviders()This value cannot benull. | 
| minTimeMs | long: minimum time interval between location updates in milliseconds | 
| minDistanceM | float: minimum distance between location updates in meters | 
| pendingIntent | PendingIntent: the pending intent to send location updates
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalArgumentException | if provider is null or doesn't exist | 
| IllegalArgumentException | if pendingIntent is null | 
| SecurityException | if no suitable permission is present | 
requestSingleUpdate
public void requestSingleUpdate (String provider, PendingIntent pendingIntent)
      This method was deprecated
      in API level 30.
    Use getCurrentLocation(java.lang.String, android.os.CancellationSignal, java.util.concurrent.Executor, java.util.function.Consumer)
 instead as it does not carry a risk of extreme battery drain.
  
Register for a single location update using a named provider and pending intent.
See requestLocationUpdates(long, float, android.location.Criteria, android.app.PendingIntent) for more detail
 on how to use this method.
 
 Requires Manifest.permission.ACCESS_COARSE_LOCATION or Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| provider | String: a provider listed bygetAllProviders()This value cannot benull. | 
| pendingIntent | PendingIntent: the pending intent to send location updates
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalArgumentException | if provider is null or doesn't exist | 
| IllegalArgumentException | if intent is null | 
| SecurityException | if no suitable permission is present | 
requestSingleUpdate
public void requestSingleUpdate (Criteria criteria, PendingIntent pendingIntent)
      This method was deprecated
      in API level 30.
    Use getCurrentLocation(java.lang.String, android.os.CancellationSignal, java.util.concurrent.Executor, java.util.function.Consumer)
 instead as it does not carry a risk of extreme battery drain.
  
Register for a single location update using a Criteria and pending intent.
Note: Since Android KitKat, Criteria requests will always result in using the
 FUSED_PROVIDER.
 
See requestLocationUpdates(long, float, android.location.Criteria, android.app.PendingIntent) for more detail
 on how to use this method.
 
 Requires Manifest.permission.ACCESS_COARSE_LOCATION or Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| criteria | Criteria: contains parameters to choose the appropriate provider for location
                      updates
 This value cannot benull. | 
| pendingIntent | PendingIntent: the pending intent to send location updates
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalArgumentException | if provider is null or doesn't exist | 
| IllegalArgumentException | if intent is null | 
| SecurityException | if no suitable permission is present | 
requestSingleUpdate
public void requestSingleUpdate (String provider, LocationListener listener, Looper looper)
      This method was deprecated
      in API level 30.
    Use getCurrentLocation(java.lang.String, android.os.CancellationSignal, java.util.concurrent.Executor, java.util.function.Consumer)
 instead as it does not carry a risk of extreme battery drain.
  
Register for a single location update using the named provider and a callback.
See requestLocationUpdates(java.lang.String, long, float, android.location.LocationListener, android.os.Looper) for
 more detail on how to use this method.
 
 Requires Manifest.permission.ACCESS_COARSE_LOCATION or Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| provider | String: a provider listed bygetAllProviders()This value cannot benull. | 
| listener | LocationListener: the listener to receive location updates
 This value cannot benull. | 
| looper | Looper: the looper handling listener callbacks, or null to use the looper of the
                 calling thread | 
| Throws | |
|---|---|
| IllegalArgumentException | if provider is null or doesn't exist | 
| IllegalArgumentException | if listener is null | 
| SecurityException | if no suitable permission is present | 
requestSingleUpdate
public void requestSingleUpdate (Criteria criteria, LocationListener listener, Looper looper)
      This method was deprecated
      in API level 30.
    Use getCurrentLocation(java.lang.String, android.os.CancellationSignal, java.util.concurrent.Executor, java.util.function.Consumer)
 instead as it does not carry a risk of extreme battery drain.
  
Register for a single location update using a Criteria and a callback.
Note: Since Android KitKat, Criteria requests will always result in using the
 FUSED_PROVIDER.
 
See requestLocationUpdates(long, float, android.location.Criteria, android.app.PendingIntent) for more detail
 on how to use this method.
 
 Requires Manifest.permission.ACCESS_COARSE_LOCATION or Manifest.permission.ACCESS_FINE_LOCATION
| Parameters | |
|---|---|
| criteria | Criteria: contains parameters to choose the appropriate provider for location updates
 This value cannot benull. | 
| listener | LocationListener: the listener to receive location updates
 This value cannot benull. | 
| looper | Looper: the looper handling listener callbacks, or null to use the looper of the
                 calling thread | 
| Throws | |
|---|---|
| IllegalArgumentException | if criteria is null | 
| IllegalArgumentException | if listener is null | 
| SecurityException | if no suitable permission is present | 
sendExtraCommand
public boolean sendExtraCommand (String provider, String command, Bundle extras)
Sends additional commands to a location provider. Can be used to support provider specific extensions to the Location Manager API.
| Parameters | |
|---|---|
| provider | String: a provider listed bygetAllProviders()This value cannot benull. | 
| command | String: name of the command to send to the provider
 This value cannot benull. | 
| extras | Bundle: optional arguments for the command, or null | 
| Returns | |
|---|---|
| boolean | true always, the return value may be ignored | 
setTestProviderEnabled
public void setTestProviderEnabled (String provider, boolean enabled)
Sets the given test provider to be enabled or disabled.
| Parameters | |
|---|---|
| provider | String: the provider name
 This value cannot benull. | 
| enabled | boolean: the mock enabled value | 
| Throws | |
|---|---|
| SecurityException | if mock location app opis not set toallowedfor your app. | 
| IllegalArgumentException | if provider is null or not a test provider | 
setTestProviderLocation
public void setTestProviderLocation (String provider, Location location)
Sets a new location for the given test provider. This location will be identiable as a mock
 location to all clients via Location.isMock().
 
The location object must have a minimum number of fields set to be considered valid, as
 per documentation on Location class.
| Parameters | |
|---|---|
| provider | String: the provider name
 This value cannot benull. | 
| location | Location: the mock location
 This value cannot benull. | 
| Throws | |
|---|---|
| SecurityException | if mock location app opis not set toallowedfor your app. | 
| IllegalArgumentException | if the provider is null or not a test provider | 
| IllegalArgumentException | if the location is null or incomplete | 
setTestProviderStatus
public void setTestProviderStatus (String provider, int status, Bundle extras, long updateTime)
      This method was deprecated
      in API level 29.
    This method has no effect.
  
This method has no effect as provider status has been deprecated and is no longer supported.
| Parameters | |
|---|---|
| provider | String: This value cannot benull. | 
| status | int | 
| extras | Bundle: This value may benull. | 
| updateTime | long | 
unregisterAntennaInfoListener
public void unregisterAntennaInfoListener (GnssAntennaInfo.Listener listener)
Unregisters a GNSS antenna info listener.
| Parameters | |
|---|---|
| listener | GnssAntennaInfo.Listener: aGnssAntennaInfo.Listenerobject to remove
 This value cannot benull. | 
unregisterGnssMeasurementsCallback
public void unregisterGnssMeasurementsCallback (GnssMeasurementsEvent.Callback callback)
Unregisters a GPS Measurement callback.
| Parameters | |
|---|---|
| callback | GnssMeasurementsEvent.Callback: aGnssMeasurementsEvent.Callbackobject to remove.
 This value cannot benull. | 
unregisterGnssNavigationMessageCallback
public void unregisterGnssNavigationMessageCallback (GnssNavigationMessage.Callback callback)
Unregisters a GNSS Navigation Message callback.
| Parameters | |
|---|---|
| callback | GnssNavigationMessage.Callback: aGnssNavigationMessage.Callbackobject to remove.
 This value cannot benull. | 
unregisterGnssStatusCallback
public void unregisterGnssStatusCallback (GnssStatus.Callback callback)
Removes a GNSS status callback.
| Parameters | |
|---|---|
| callback | GnssStatus.Callback: GNSS status callback object to remove
 This value cannot benull. | 
