Package org.robolectric.shadows
Class ShadowLocationManager
- java.lang.Object
-
- org.robolectric.shadows.ShadowLocationManager
-
@Implements(value=android.location.LocationManager.class, looseSignatures=true) public class ShadowLocationManager extends java.lang.ObjectShadow forLocationManager. Note that the default state of location on Android devices is location on, gps provider enabled, network provider disabled.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classShadowLocationManager.ProviderPropertiesProperties of a provider.
-
Constructor Summary
Constructors Constructor Description ShadowLocationManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected booleanaddGpsStatusListener(android.location.GpsStatus.Listener listener)protected booleanaddNmeaListener(android.location.OnNmeaMessageListener listener, android.os.Handler handler)protected java.util.List<java.lang.String>getAllProviders()protected java.lang.StringgetBestProvider(android.location.Criteria criteria, boolean enabled)java.util.List<android.location.GpsStatus.Listener>getGpsStatusListeners()protected android.location.LocationgetLastKnownLocation(java.lang.String provider)java.util.List<android.location.LocationListener>getLocationUpdateListeners()Deprecated.Do not test listeners, instead usesimulateLocation(Location)and test the results of those listeners being invoked.java.util.List<android.location.LocationListener>getLocationUpdateListeners(java.lang.String provider)Deprecated.Do not test listeners, instead usesimulateLocation(Location)and test the results of those listeners being invoked.java.util.List<android.app.PendingIntent>getLocationUpdatePendingIntents()Deprecated.Do not test pending intents, instead usesimulateLocation(Location)and test the results of those pending intent being invoked.java.util.List<android.app.PendingIntent>getLocationUpdatePendingIntents(java.lang.String provider)Deprecated.Do not test pending intents, instead usesimulateLocation(Location)and test the results of those pending intent being invoked.protected android.location.LocationProvidergetProvider(java.lang.String name)protected java.util.List<java.lang.String>getProviders(boolean enabledOnly)protected java.util.List<java.lang.String>getProviders(android.location.Criteria criteria, boolean enabled)java.util.List<android.location.LocationListener>getRequestLocationUpdateListeners()Deprecated.UsegetLocationUpdateListeners()instead.protected booleaninjectLocation(android.location.Location location)protected booleanisLocationEnabledForUser(android.os.UserHandle userHandle)protected booleanisProviderEnabled(java.lang.String provider)protected booleanregisterGnssStatusCallback(android.location.GnssStatus.Callback callback, android.os.Handler handler)protected voidremoveGpsStatusListener(android.location.GpsStatus.Listener listener)protected voidremoveNmeaListener(android.location.OnNmeaMessageListener listener)voidremoveProvider(java.lang.String name)Completely removes a provider.protected voidremoveUpdates(android.app.PendingIntent pendingIntent)protected voidremoveUpdates(android.location.LocationListener listener)protected voidrequestLocationUpdates(long minTime, float minDistance, android.location.Criteria criteria, android.app.PendingIntent intent)protected voidrequestLocationUpdates(long minTime, float minDistance, android.location.Criteria criteria, android.location.LocationListener listener, android.os.Looper looper)protected voidrequestLocationUpdates(java.lang.Object oRequest, java.lang.Object intent)protected voidrequestLocationUpdates(java.lang.Object oRequest, java.lang.Object listener, java.lang.Object looper)protected voidrequestLocationUpdates(java.lang.String provider, long minTime, float minDistance, android.app.PendingIntent intent)protected voidrequestLocationUpdates(java.lang.String provider, long minTime, float minDistance, android.location.LocationListener listener)protected voidrequestLocationUpdates(java.lang.String provider, long minTime, float minDistance, android.location.LocationListener listener, android.os.Looper looper)protected voidrequestSingleUpdate(android.location.Criteria criteria, android.app.PendingIntent intent)protected voidrequestSingleUpdate(android.location.Criteria criteria, android.location.LocationListener listener, android.os.Looper looper)protected voidrequestSingleUpdate(java.lang.String provider, android.app.PendingIntent intent)protected voidrequestSingleUpdate(java.lang.String provider, android.location.LocationListener listener, android.os.Looper looper)voidsendGnssStatus(android.location.GnssStatus status)Sends aGnssStatusto all registeredGnssStatus.Callbacks.voidsendNmeaMessage(java.lang.String message, long timestamp)Sends a NMEA message to all registeredOnNmeaMessageListeners.voidsetLastKnownLocation(java.lang.String provider, android.location.Location location)Sets the last known location for the given provider.voidsetLocationEnabled(boolean enabled)On P and above, turns location on or off.protected voidsetLocationEnabledForUser(boolean enabled, android.os.UserHandle userHandle)voidsetLocationMode(int locationMode)On pre-P devices, sets the device location mode.voidsetProviderEnabled(java.lang.String name, boolean enabled)Sets the given provider enabled or disabled.voidsetProviderProperties(java.lang.String name, ShadowLocationManager.ProviderProperties properties)Sets the properties of the given provider.voidsimulateLocation(android.location.Location location)Delivers a new location to the appropriate listeners and updates state accordingly.protected voidunregisterGnssStatusCallback(android.location.GnssStatus.Callback callback)
-
-
-
Method Detail
-
getAllProviders
@Implementation protected java.util.List<java.lang.String> getAllProviders()
-
getProvider
@Implementation @Nullable protected android.location.LocationProvider getProvider(java.lang.String name)
-
getProviders
@Implementation protected java.util.List<java.lang.String> getProviders(boolean enabledOnly)
-
getProviders
@Implementation protected java.util.List<java.lang.String> getProviders(@Nullable android.location.Criteria criteria, boolean enabled)
-
getBestProvider
@Implementation @Nullable protected java.lang.String getBestProvider(android.location.Criteria criteria, boolean enabled)
-
isProviderEnabled
@Implementation protected boolean isProviderEnabled(java.lang.String provider)
-
removeProvider
public void removeProvider(java.lang.String name)
Completely removes a provider.
-
setProviderProperties
public void setProviderProperties(java.lang.String name, @Nullable ShadowLocationManager.ProviderProperties properties)Sets the properties of the given provider. The provider will be created if it doesn't exist already.
-
setProviderEnabled
public void setProviderEnabled(java.lang.String name, boolean enabled)Sets the given provider enabled or disabled. The provider will be created if it doesn't exist already. On P and above, location must also be enabled viasetLocationEnabled(boolean)in order for a provider to be considered enabled.
-
isLocationEnabledForUser
@Implementation(minSdk=28) protected boolean isLocationEnabledForUser(android.os.UserHandle userHandle)
-
setLocationEnabledForUser
@Implementation(minSdk=28) protected void setLocationEnabledForUser(boolean enabled, android.os.UserHandle userHandle)
-
setLocationEnabled
public void setLocationEnabled(boolean enabled)
On P and above, turns location on or off. On pre-P devices, sets the location mode toSettings.Secure.LOCATION_MODE_HIGH_ACCURACYorSettings.Secure.LOCATION_MODE_OFF.
-
setLocationMode
public void setLocationMode(int locationMode)
On pre-P devices, sets the device location mode. For P and above, usesetLocationEnabled(boolean)andsetProviderEnabled(String, boolean)in combination to achieve the desired effect.
-
getLastKnownLocation
@Implementation @Nullable protected android.location.Location getLastKnownLocation(java.lang.String provider)
-
setLastKnownLocation
public void setLastKnownLocation(java.lang.String provider, @Nullable android.location.Location location)Sets the last known location for the given provider.
-
requestSingleUpdate
@Implementation protected void requestSingleUpdate(java.lang.String provider, android.location.LocationListener listener, @Nullable android.os.Looper looper)
-
requestSingleUpdate
@Implementation protected void requestSingleUpdate(android.location.Criteria criteria, android.location.LocationListener listener, @Nullable android.os.Looper looper)
-
requestSingleUpdate
@Implementation protected void requestSingleUpdate(java.lang.String provider, android.app.PendingIntent intent)
-
requestSingleUpdate
@Implementation protected void requestSingleUpdate(android.location.Criteria criteria, android.app.PendingIntent intent)
-
requestLocationUpdates
@Implementation protected void requestLocationUpdates(java.lang.String provider, long minTime, float minDistance, android.location.LocationListener listener)
-
requestLocationUpdates
@Implementation protected void requestLocationUpdates(java.lang.String provider, long minTime, float minDistance, android.location.LocationListener listener, @Nullable android.os.Looper looper)
-
requestLocationUpdates
@Implementation protected void requestLocationUpdates(long minTime, float minDistance, android.location.Criteria criteria, android.location.LocationListener listener, @Nullable android.os.Looper looper)
-
requestLocationUpdates
@Implementation protected void requestLocationUpdates(java.lang.String provider, long minTime, float minDistance, android.app.PendingIntent intent)
-
requestLocationUpdates
@Implementation protected void requestLocationUpdates(long minTime, float minDistance, android.location.Criteria criteria, android.app.PendingIntent intent)
-
requestLocationUpdates
@Implementation(minSdk=21) protected void requestLocationUpdates(@Nullable java.lang.Object oRequest, java.lang.Object listener, @Nullable java.lang.Object looper)
-
requestLocationUpdates
@Implementation(minSdk=21) protected void requestLocationUpdates(@Nullable java.lang.Object oRequest, java.lang.Object intent)
-
removeUpdates
@Implementation protected void removeUpdates(android.location.LocationListener listener)
-
removeUpdates
@Implementation protected void removeUpdates(android.app.PendingIntent pendingIntent)
-
injectLocation
@Implementation(minSdk=28) protected boolean injectLocation(android.location.Location location)
-
addGpsStatusListener
@Implementation protected boolean addGpsStatusListener(android.location.GpsStatus.Listener listener)
-
removeGpsStatusListener
@Implementation protected void removeGpsStatusListener(android.location.GpsStatus.Listener listener)
-
getGpsStatusListeners
public java.util.List<android.location.GpsStatus.Listener> getGpsStatusListeners()
-
registerGnssStatusCallback
@Implementation(minSdk=24) protected boolean registerGnssStatusCallback(android.location.GnssStatus.Callback callback, android.os.Handler handler)
-
unregisterGnssStatusCallback
@Implementation(minSdk=24) protected void unregisterGnssStatusCallback(android.location.GnssStatus.Callback callback)
-
sendGnssStatus
public void sendGnssStatus(android.location.GnssStatus status)
Sends aGnssStatusto all registeredGnssStatus.Callbacks.
-
addNmeaListener
@Implementation(minSdk=24) protected boolean addNmeaListener(android.location.OnNmeaMessageListener listener, android.os.Handler handler)
-
removeNmeaListener
@Implementation(minSdk=24) protected void removeNmeaListener(android.location.OnNmeaMessageListener listener)
-
sendNmeaMessage
public void sendNmeaMessage(java.lang.String message, long timestamp)Sends a NMEA message to all registeredOnNmeaMessageListeners.
-
getRequestLocationUpdateListeners
@Deprecated public java.util.List<android.location.LocationListener> getRequestLocationUpdateListeners()
Deprecated.UsegetLocationUpdateListeners()instead.
-
simulateLocation
public void simulateLocation(android.location.Location location)
Delivers a new location to the appropriate listeners and updates state accordingly. Delivery will ignore the enabled/disabled state of providers, unlike location on a real device.
-
getLocationUpdateListeners
@Deprecated public java.util.List<android.location.LocationListener> getLocationUpdateListeners()
Deprecated.Do not test listeners, instead usesimulateLocation(Location)and test the results of those listeners being invoked.Retrieves a list of all currently registered listeners.
-
getLocationUpdateListeners
@Deprecated public java.util.List<android.location.LocationListener> getLocationUpdateListeners(java.lang.String provider)
Deprecated.Do not test listeners, instead usesimulateLocation(Location)and test the results of those listeners being invoked.Retrieves a list of all currently registered listeners for the given provider.
-
getLocationUpdatePendingIntents
@Deprecated public java.util.List<android.app.PendingIntent> getLocationUpdatePendingIntents()
Deprecated.Do not test pending intents, instead usesimulateLocation(Location)and test the results of those pending intent being invoked.Retrieves a list of all currently registered pending intents.
-
getLocationUpdatePendingIntents
@Deprecated public java.util.List<android.app.PendingIntent> getLocationUpdatePendingIntents(java.lang.String provider)
Deprecated.Do not test pending intents, instead usesimulateLocation(Location)and test the results of those pending intent being invoked.Retrieves a list of all currently registered pending intents for the given provider.
-
-