Most visited

Recently visited

Added in API level 1

LocationManager

public class LocationManager
extends Object

java.lang.Object
   ↳ android.location.LocationManager


该课程提供对系统位置服务的访问。 这些服务允许应用程序定期更新设备的地理位置,或者在设备进入特定地理位置附近时触发应用程序指定的Intent

你不直接实例化这个类; 相反,通过Context.getSystemService(Context.LOCATION_SERVICE)检索它。

除非指出,否则所有Location API方法都需要ACCESS_COARSE_LOCATIONACCESS_FINE_LOCATION权限。 如果您的应用程序只具有粗略权限,那么它将无法访问GPS或被动位置提供程序。 其他提供程序仍然会返回位置结果,但更新速率将受到限制,精确位置将被模糊处理为粗略的准确性级别。

Summary

Constants

String GPS_PROVIDER

GPS位置提供商的名称。

String KEY_LOCATION_CHANGED

当使用PendingIntent广播位置更改时,用于Bundle额外的保留位置值的密钥。

String KEY_PROVIDER_ENABLED

当使用PendingIntent广播供应商启用/禁用事件时,用于捆绑额外的键用于保持布尔状态值。

String KEY_PROXIMITY_ENTERING

用于Bundle额外的键,用于保存指示接近警报是进入(true)还是退出(false)的布尔值。

String KEY_STATUS_CHANGED

当使用PendingIntent广播状态更改时,该键用于保持整数状态值的Bundle额外值。

String MODE_CHANGED_ACTION

LOCATION_MODE更改时的广播意图操作。

String NETWORK_PROVIDER

网络位置提供商的名称。

String PASSIVE_PROVIDER

用于接收位置的特殊位置提供商,无需实际启动位置定位。

String PROVIDERS_CHANGED_ACTION

配置的位置提供者更改时的广播意图操作。

Public methods

boolean addGpsStatusListener(GpsStatus.Listener listener)

此方法在API级别24中已弃用。 registerGnssStatusCallback(GnssStatus.Callback)改为使用registerGnssStatusCallback(GnssStatus.Callback)

boolean addNmeaListener(OnNmeaMessageListener listener, Handler handler)

添加一个NMEA监听器。

boolean addNmeaListener(OnNmeaMessageListener listener)

添加一个NMEA监听器。

boolean addNmeaListener(GpsStatus.NmeaListener listener)

此方法在API级别24中已弃用。 addNmeaListener(OnNmeaMessageListener)改为使用addNmeaListener(OnNmeaMessageListener)

void addProximityAlert(double latitude, double longitude, float radius, long expiration, PendingIntent intent)

根据位置(纬度,经度)和给定半径设置接近警报。

void addTestProvider(String name, boolean requiresNetwork, boolean requiresSatellite, boolean requiresCell, boolean hasMonetaryCost, boolean supportsAltitude, boolean supportsSpeed, boolean supportsBearing, int powerRequirement, int accuracy)

创建一个模拟位置提供程序并将其添加到一组活动提供程序中。

void clearTestProviderEnabled(String provider)

删除与给定提供者关联的任何启用模拟值。

void clearTestProviderLocation(String provider)

删除与给定提供者关联的任何模拟位置。

void clearTestProviderStatus(String provider)

删除与给定提供者相关的任何模拟状态值。

List<String> getAllProviders()

返回所有已知位置提供者的名称列表。

String getBestProvider(Criteria criteria, boolean enabledOnly)

返回最符合给定条件的提供者的名称。

GpsStatus getGpsStatus(GpsStatus status)

检索有关GPS引擎当前状态的信息。

Location getLastKnownLocation(String provider)

返回一个位置,指示从给定提供者获取的最后一次已知位置定位的数据。

LocationProvider getProvider(String name)

返回与给定名称的位置提供程序关联的信息,如果该名称不存在提供程序,则返回null。

List<String> getProviders(Criteria criteria, boolean enabledOnly)

返回满足给定条件的LocationProviders的名称列表,如果没有,则返回null。

List<String> getProviders(boolean enabledOnly)

返回位置提供者的名称列表。

boolean isProviderEnabled(String provider)

返回给定提供者的当前启用/禁用状态。

boolean registerGnssMeasurementsCallback(GnssMeasurementsEvent.Callback callback, Handler handler)

注册GPS测量回调。

boolean registerGnssMeasurementsCallback(GnssMeasurementsEvent.Callback callback)

注册GPS测量回调。

boolean registerGnssNavigationMessageCallback(GnssNavigationMessage.Callback callback, Handler handler)

注册GNSS导航消息回调。

boolean registerGnssNavigationMessageCallback(GnssNavigationMessage.Callback callback)

注册GNSS导航消息回调。

boolean registerGnssStatusCallback(GnssStatus.Callback callback)

注册GNSS状态监听器。

boolean registerGnssStatusCallback(GnssStatus.Callback callback, Handler handler)

注册GNSS状态监听器。

void removeGpsStatusListener(GpsStatus.Listener listener)

此方法在API级别24中已弃用。 unregisterGnssStatusCallback(GnssStatus.Callback)改为使用unregisterGnssStatusCallback(GnssStatus.Callback)

void removeNmeaListener(OnNmeaMessageListener listener)

删除NMEA侦听器。

void removeNmeaListener(GpsStatus.NmeaListener listener)

此方法在API级别24中已弃用。 removeNmeaListener(OnNmeaMessageListener)改为使用removeNmeaListener(OnNmeaMessageListener)

void removeProximityAlert(PendingIntent intent)

使用给定的PendingIntent删除接近警报。

void removeTestProvider(String provider)

删除具有给定名称的模拟位置提供程序。

void removeUpdates(LocationListener listener)

删除指定LocationListener的所有位置更新。

void removeUpdates(PendingIntent intent)

删除指定的待处理意图的所有位置更新。

void requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener)

使用指定的提供程序注册位置更新以及待定的意图。

void requestLocationUpdates(long minTime, float minDistance, Criteria criteria, LocationListener listener, Looper looper)

使用Criteria注册位置更新,并在指定的Looper线程上进行回调。

void requestLocationUpdates(long minTime, float minDistance, Criteria criteria, PendingIntent intent)

使用标准和待定意图注册位置更新。

void requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener, Looper looper)

使用指定的提供程序注册位置更新,并在指定的Looper线程上进行回调。

void requestLocationUpdates(String provider, long minTime, float minDistance, PendingIntent intent)

使用指定的提供程序注册位置更新以及待定的意图。

void requestSingleUpdate(String provider, PendingIntent intent)

使用指定提供者和待定意图注册一个位置更新。

void requestSingleUpdate(String provider, LocationListener listener, Looper looper)

使用指定的提供程序和回调注册一个位置更新。

void requestSingleUpdate(Criteria criteria, LocationListener listener, Looper looper)

使用Criteria和回调注册一个位置更新。

void requestSingleUpdate(Criteria criteria, PendingIntent intent)

使用条件和待定意图注册单个位置更新。

boolean sendExtraCommand(String provider, String command, Bundle extras)

将其他命令发送给位置提供者。

void setTestProviderEnabled(String provider, boolean enabled)

为给定提供者设置一个启用模拟值。

void setTestProviderLocation(String provider, Location loc)

为给定提供者设置模拟位置。

void setTestProviderStatus(String provider, int status, Bundle extras, long updateTime)

为给定提供者设置模拟状态值。

void unregisterGnssMeasurementsCallback(GnssMeasurementsEvent.Callback callback)

取消注册GPS测量回调。

void unregisterGnssNavigationMessageCallback(GnssNavigationMessage.Callback callback)

取消注册GNSS导航消息回调。

void unregisterGnssStatusCallback(GnssStatus.Callback callback)

删除一个GNSS状态监听器。

Inherited methods

From class java.lang.Object

Constants

GPS_PROVIDER

Added in API level 1
String GPS_PROVIDER

GPS位置提供商的名称。

该提供商使用卫星确定位置。 根据条件,此提供程序可能需要一段时间才能返回定位修复。 需要许可ACCESS_FINE_LOCATION

GPS位置提供商的附加软件包可以包含以下键/值对:

  • satellites - the number of satellites used to derive the fix

常数值:“gps”

KEY_LOCATION_CHANGED

Added in API level 3
String KEY_LOCATION_CHANGED

当使用PendingIntent广播位置更改时,用于Bundle额外的保留位置值的密钥。

常数值:“位置”

KEY_PROVIDER_ENABLED

Added in API level 3
String KEY_PROVIDER_ENABLED

当使用PendingIntent广播供应商启用/禁用事件时,用于捆绑额外的键用于保持布尔状态值。

常量值:“providerEnabled”

KEY_PROXIMITY_ENTERING

Added in API level 1
String KEY_PROXIMITY_ENTERING

用于Bundle额外的键,用于保存指示接近警报是进入(true)还是退出(false)的布尔值。

常数值:“进入”

KEY_STATUS_CHANGED

Added in API level 3
String KEY_STATUS_CHANGED

当使用PendingIntent广播状态更改时,该键用于保持整数状态值的Bundle额外值。

常数值:“状态”

MODE_CHANGED_ACTION

Added in API level 19
String MODE_CHANGED_ACTION

LOCATION_MODE更改时的广播意图操作。 用于LOCATION_MODE API。 如果您正在与isProviderEnabled(String)交互,请isProviderEnabled(String)使用PROVIDERS_CHANGED_ACTION 将来,可能会有模式更改不会导致PROVIDERS_CHANGED_ACTION广播。

常量值:“android.location.MODE_CHANGED”

NETWORK_PROVIDER

Added in API level 1
String NETWORK_PROVIDER

网络位置提供商的名称。

该提供商根据小区塔和WiFi接入点的可用性来确定位置。 通过网络查找检索结果。

常数值:“网络”

PASSIVE_PROVIDER

Added in API level 8
String PASSIVE_PROVIDER

用于接收位置的特殊位置提供商,无需实际启动位置定位。

当其他应用程序或服务请求它们时,此提供程序可用于被动接收位置更新,而无需实际请求您自己的位置。 该提供者将返回由其他提供者生成的位置。 您可以查询getProvider()方法以确定位置更新的来源。 需要许可ACCESS_FINE_LOCATION ,但如果GPS未启用,则此提供程序可能只返回粗略修正。

恒定值:“被动”

PROVIDERS_CHANGED_ACTION

Added in API level 9
String PROVIDERS_CHANGED_ACTION

配置的位置提供者更改时的广播意图操作。 用于isProviderEnabled(String) 如果您正在与LOCATION_MODE API进行交互,请LOCATION_MODE使用MODE_CHANGED_ACTION

常量值:“android.location.PROVIDERS_CHANGED”

Public methods

addGpsStatusListener

Added in API level 3
boolean addGpsStatusListener (GpsStatus.Listener listener)

此方法在API级别24中已弃用。
改为使用registerGnssStatusCallback(GnssStatus.Callback)

添加一个GPS状态监听器。

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

Added in API level 24
boolean addNmeaListener (OnNmeaMessageListener listener, 
                Handler handler)

添加一个NMEA监听器。

Parameters
listener OnNmeaMessageListener: a OnNmeaMessageListener object to register
handler Handler: the handler that the listener runs on.
Returns
boolean true if the listener was successfully added
Throws
SecurityException if the ACCESS_FINE_LOCATION permission is not present

addNmeaListener

Added in API level 24
boolean addNmeaListener (OnNmeaMessageListener listener)

添加一个NMEA监听器。

Parameters
listener OnNmeaMessageListener: a OnNmeaMessageListener object to register
Returns
boolean true if the listener was successfully added
Throws
SecurityException if the ACCESS_FINE_LOCATION permission is not present

addNmeaListener

Added in API level 5
boolean addNmeaListener (GpsStatus.NmeaListener listener)

此方法在API级别24中已弃用。
改为使用addNmeaListener(OnNmeaMessageListener)

添加一个NMEA监听器。

Parameters
listener GpsStatus.NmeaListener: a GpsStatus.NmeaListener object to register
Returns
boolean true if the listener was successfully added
Throws
SecurityException if the ACCESS_FINE_LOCATION permission is not present

addProximityAlert

Added in API level 1
void addProximityAlert (double latitude, 
                double longitude, 
                float radius, 
                long expiration, 
                PendingIntent intent)

根据位置(纬度,经度)和给定半径设置接近警报。

当设备检测到它已经进入或退出该位置周围的区域时,将使用给定的PendingIntent来创建要被触发的意图。

被触发的意图将有一个布尔额外添加键KEY_PROXIMITY_ENTERING 如果该值为真,则设备正在进入邻近区域; 如果错误,则退出。

由于位置估算的近似性质,如果设备短暂通过给定区域,可能不会发射Intent。 同样,如果设备经过非常靠近给定区域但实际上并未进入,则可以触发意图。

在过期参数给定的毫秒数之后,位置管理器将删除该近似警报并且不再监视它。 值为-1表示不应该有到期时间。

在内部,该方法同时使用 NETWORK_PROVIDERGPS_PROVIDER

在API版本17之前,此方法可以与ACCESS_FINE_LOCATIONACCESS_COARSE_LOCATION一起使用。 从API版本17开始,此方法需要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: time for this proximity alert, in milliseconds, or -1 to indicate no expiration
intent PendingIntent: a PendingIntent that will be used to generate an Intent to fire when entry to or exit from the alert region is detected
Throws
SecurityException if ACCESS_FINE_LOCATION permission is not present

addTestProvider

Added in API level 3
void addTestProvider (String name, 
                boolean requiresNetwork, 
                boolean requiresSatellite, 
                boolean requiresCell, 
                boolean hasMonetaryCost, 
                boolean supportsAltitude, 
                boolean supportsSpeed, 
                boolean supportsBearing, 
                int powerRequirement, 
                int accuracy)

创建一个模拟位置提供程序并将其添加到一组活动提供程序中。

Parameters
name String: the provider name
requiresNetwork boolean
requiresSatellite boolean
requiresCell boolean
hasMonetaryCost boolean
supportsAltitude boolean
supportsSpeed boolean
supportsBearing boolean
powerRequirement int
accuracy int
Throws
SecurityException if mock location app op is not set to allowed for your app.
IllegalArgumentException if a provider with the given name already exists

clearTestProviderEnabled

Added in API level 3
void clearTestProviderEnabled (String provider)

删除与给定提供者关联的任何启用模拟值。

Parameters
provider String: the provider name
Throws
SecurityException if mock location app op is not set to allowed for your app.
IllegalArgumentException if no provider with the given name exists

clearTestProviderLocation

Added in API level 3
void clearTestProviderLocation (String provider)

删除与给定提供者关联的任何模拟位置。

Parameters
provider String: the provider name
Throws
SecurityException if mock location app op is not set to allowed for your app.
IllegalArgumentException if no provider with the given name exists

clearTestProviderStatus

Added in API level 3
void clearTestProviderStatus (String provider)

删除与给定提供者相关的任何模拟状态值。

Parameters
provider String: the provider name
Throws
SecurityException if mock location app op is not set to allowed for your app.
IllegalArgumentException if no provider with the given name exists

getAllProviders

Added in API level 1
List<String> getAllProviders ()

返回所有已知位置提供者的名称列表。

所有提供者都会返回,包括那些不允许被调用活动访问或当前被禁用的提供者。

Returns
List<String> list of Strings containing names of the provider

getBestProvider

Added in API level 1
String getBestProvider (Criteria criteria, 
                boolean enabledOnly)

返回最符合给定条件的提供者的名称。 只有被允许被调用活动访问的提供者才会被返回。 如果有几家提供商符合标准,则返回最准确的标准。 如果没有提供者符合标准,则标准按以下顺序排列:

  • power requirement
  • accuracy
  • bearing
  • speed
  • altitude

请注意,在此过程中不会消除对货币成本的要求。

Parameters
criteria Criteria: the criteria that need to be matched
enabledOnly boolean: if true then only a provider that is currently enabled is returned
Returns
String name of the provider that best matches the requirements

getGpsStatus

Added in API level 3
GpsStatus getGpsStatus (GpsStatus status)

检索有关GPS引擎当前状态的信息。 这应该只从onGpsStatusChanged(int)回调中调用,以确保数据以原子方式复制。 调用者可以传递一个GpsStatus对象来设置最新的状态信息,或者传递null来创建一个新的GpsStatus对象。

Parameters
status GpsStatus: object containing GPS status details, or null.
Returns
GpsStatus status object containing updated GPS status.

getLastKnownLocation

Added in API level 1
Location getLastKnownLocation (String provider)

返回一个位置,指示从给定提供者获取的最后一次已知位置定位的数据。

这可以在不启动提供者的情况下完成。 请注意,此位置可能已过时,例如,如果设备已关闭并移至其他位置。

如果提供者当前被禁用,则返回null。

Parameters
provider String: the name of the provider
Returns
Location the last known location for the provider, or null
Throws
SecurityException if no suitable permission is present
IllegalArgumentException if provider is null or doesn't exist

getProvider

Added in API level 1
LocationProvider getProvider (String name)

返回与给定名称的位置提供程序关联的信息,如果该名称不存在提供程序,则返回null。

Parameters
name String: the provider name
Returns
LocationProvider a LocationProvider, or null
Throws
IllegalArgumentException if name is null or does not exist
SecurityException if the caller is not permitted to access the given provider.

getProviders

Added in API level 1
List<String> getProviders (Criteria criteria, 
                boolean enabledOnly)

返回满足给定条件的LocationProviders的名称列表,如果没有,则返回null。 只有被允许被调用活动访问的提供者才会被返回。

Parameters
criteria Criteria: the criteria that the returned providers must match
enabledOnly boolean: if true then only the providers which are currently enabled are returned.
Returns
List<String> list of Strings containing names of the providers

getProviders

Added in API level 1
List<String> getProviders (boolean enabledOnly)

返回位置提供者的名称列表。

Parameters
enabledOnly boolean: if true then only the providers which are currently enabled are returned.
Returns
List<String> list of Strings containing names of the providers

isProviderEnabled

Added in API level 1
boolean isProviderEnabled (String provider)

返回给定提供者的当前启用/禁用状态。

如果用户在设置菜单中启用了此提供程序,则返回true,否则返回false

LOCATION_MODE者应改为使用 LOCATION_MODE除非他们依赖于提供者特定的API,例如 requestLocationUpdates(String, long, float, LocationListener)

在API版本 LOLLIPOP之前,如果位置权限不足以使用指定的提供程序,则此方法将抛出 SecurityException

Parameters
provider String: the name of the provider
Returns
boolean true if the provider exists and is enabled
Throws
IllegalArgumentException if provider is null

registerGnssMeasurementsCallback

Added in API level 24
boolean registerGnssMeasurementsCallback (GnssMeasurementsEvent.Callback callback, 
                Handler handler)

注册GPS测量回调。

Parameters
callback GnssMeasurementsEvent.Callback: a GnssMeasurementsEvent.Callback object to register.
handler Handler: the handler that the callback runs on.
Returns
boolean true if the callback was added successfully, false otherwise.

registerGnssMeasurementsCallback

Added in API level 24
boolean registerGnssMeasurementsCallback (GnssMeasurementsEvent.Callback callback)

注册GPS测量回调。

Parameters
callback GnssMeasurementsEvent.Callback: a GnssMeasurementsEvent.Callback object to register.
Returns
boolean true if the callback was added successfully, false otherwise.

registerGnssNavigationMessageCallback

Added in API level 24
boolean registerGnssNavigationMessageCallback (GnssNavigationMessage.Callback callback, 
                Handler handler)

注册GNSS导航消息回调。

Parameters
callback GnssNavigationMessage.Callback: a GnssNavigationMessage.Callback object to register.
handler Handler: the handler that the callback runs on.
Returns
boolean true if the callback was added successfully, false otherwise.

registerGnssNavigationMessageCallback

Added in API level 24
boolean registerGnssNavigationMessageCallback (GnssNavigationMessage.Callback callback)

注册GNSS导航消息回调。

Parameters
callback GnssNavigationMessage.Callback: a GnssNavigationMessage.Callback object to register.
Returns
boolean true if the callback was added successfully, false otherwise.

registerGnssStatusCallback

Added in API level 24
boolean registerGnssStatusCallback (GnssStatus.Callback callback)

注册GNSS状态监听器。

Parameters
callback GnssStatus.Callback: GNSS 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

registerGnssStatusCallback

Added in API level 24
boolean registerGnssStatusCallback (GnssStatus.Callback callback, 
                Handler handler)

注册GNSS状态监听器。

Parameters
callback GnssStatus.Callback: GNSS status listener object to register
handler Handler: the handler that the callback runs on.
Returns
boolean true if the listener was successfully added
Throws
SecurityException if the ACCESS_FINE_LOCATION permission is not present

removeGpsStatusListener

Added in API level 3
void removeGpsStatusListener (GpsStatus.Listener listener)

此方法在API级别24中已弃用。
改为使用unregisterGnssStatusCallback(GnssStatus.Callback)

删除GPS状态监听器。

Parameters
listener GpsStatus.Listener: GPS status listener object to remove

removeNmeaListener

Added in API level 24
void removeNmeaListener (OnNmeaMessageListener listener)

删除NMEA侦听器。

Parameters
listener OnNmeaMessageListener: a OnNmeaMessageListener object to remove

removeNmeaListener

Added in API level 5
void removeNmeaListener (GpsStatus.NmeaListener listener)

此方法在API级别24中已弃用。
改为使用removeNmeaListener(OnNmeaMessageListener)

删除NMEA侦听器。

Parameters
listener GpsStatus.NmeaListener: a GpsStatus.NmeaListener object to remove

removeProximityAlert

Added in API level 1
void removeProximityAlert (PendingIntent intent)

使用给定的PendingIntent删除接近警报。

在API 17之前,此方法可以与ACCESS_FINE_LOCATIONACCESS_COARSE_LOCATION一起使用。 从API版本17开始,此方法需要ACCESS_FINE_LOCATION权限。

Parameters
intent PendingIntent: the PendingIntent that no longer needs to be notified of proximity alerts
Throws
IllegalArgumentException if intent is null
SecurityException if ACCESS_FINE_LOCATION permission is not present

removeTestProvider

Added in API level 3
void removeTestProvider (String provider)

删除具有给定名称的模拟位置提供程序。

Parameters
provider String: the provider name
Throws
SecurityException if mock location app op is not set to allowed for your app.
IllegalArgumentException if no provider with the given name exists

removeUpdates

Added in API level 1
void removeUpdates (LocationListener listener)

删除指定LocationListener的所有位置更新。

在此调用之后,此侦听器不再进行更新。

Parameters
listener LocationListener: listener object that no longer needs location updates
Throws
IllegalArgumentException if listener is null

removeUpdates

Added in API level 3
void removeUpdates (PendingIntent intent)

删除指定的待处理意图的所有位置更新。

在此通话之后,更新将不再用于此未决意图。

Parameters
intent PendingIntent: pending intent object that no longer needs location updates
Throws
IllegalArgumentException if intent is null

requestLocationUpdates

Added in API level 1
void requestLocationUpdates (String provider, 
                long minTime, 
                float minDistance, 
                LocationListener listener)

使用指定的提供程序注册位置更新以及待定的意图。

有关如何使用此方法的更多详细信息,请参阅 requestLocationUpdates(long, float, Criteria, PendingIntent)

Parameters
provider String: the name of the provider with which to register
minTime long: minimum time interval between location updates, in milliseconds
minDistance float: minimum distance between location updates, in meters
listener LocationListener: a LocationListener whose onLocationChanged(Location) method will be called for each location update
Throws
IllegalArgumentException if provider is null or doesn't exist on this device
IllegalArgumentException if listener is null
RuntimeException if the calling thread has no Looper
SecurityException if no suitable permission is present

requestLocationUpdates

Added in API level 9
void requestLocationUpdates (long minTime, 
                float minDistance, 
                Criteria criteria, 
                LocationListener listener, 
                Looper looper)

使用Criteria注册位置更新,并在指定的Looper线程上进行回调。

有关如何使用此方法的更多详细信息,请参阅 requestLocationUpdates(long, float, Criteria, PendingIntent)

Parameters
minTime long: minimum time interval between location updates, in milliseconds
minDistance float: minimum distance between location updates, in meters
criteria Criteria: contains parameters for the location manager to choose the appropriate provider and parameters to compute the location
listener LocationListener: a LocationListener whose onLocationChanged(Location) method will be called for each location update
looper Looper: a Looper object whose message queue will be used to implement the callback mechanism, or null to make callbacks on the calling thread
Throws
IllegalArgumentException if criteria is null
IllegalArgumentException if listener is null
SecurityException if no suitable permission is present

requestLocationUpdates

Added in API level 9
void requestLocationUpdates (long minTime, 
                float minDistance, 
                Criteria criteria, 
                PendingIntent intent)

使用标准和待定意图注册位置更新。

requestLocationUpdates()requestSingleUpdate()注册当前活动,由指定的提供程序定期更新,或由提供程序与指定的 Criteria匹配,并提供位置和状态更新。

接收第一个位置更新可能需要一段时间。 如果需要立即位置,应用程序可以使用getLastKnownLocation(String)方法。

位置更新通过 LocationListener回调或广播意向到 PendingIntent

如果主叫方提供了未决意图,则使用 KEY_LOCATION_CHANGEDLocation值的密钥发送位置更新。

位置更新间隔可以使用minTime参数进行控制。 位置更新之间的时间间隔永远不会小于minTime,但它可能更多取决于位置提供程序的实施和其他应用程序请求的更新间隔。

为minTime选择合理的值对于延长电池寿命非常重要。 每个位置更新都需要GPS,WIFI,蜂窝和其他无线电的电源。 尽可能选择尽可能高的minTime值,同时提供合理的用户体验。 如果您的应用程序不在前台并向用户显示位置,则应用程序应避免使用活动提供程序(例如NETWORK_PROVIDERGPS_PROVIDER ),但如果您坚持,请选择5 * 60 * 1000(5分钟)的minTime或更大。 如果您的应用程序处于前台并向用户显示位置,则选择更快的更新间隔是适当的。

minDistance参数也可以用来控制位置更新的频率。 如果它大于0,则位置提供者只会在位置至少改变minDistance米时发送更新,并至少经过minTime毫秒。 然而,定位提供商使用minDistance参数节省功耗更为困难,所以minTime应该是节省电池寿命的主要工具。

如果您的应用程序想要被动地观察由其他应用程序触发的位置更新,但是不会消耗任何额外的功能,那么请使用PASSIVE_PROVIDER此提供程序不会主动打开或修改活动位置提供程序,因此您无需谨慎操作minTime和minDistance。 但是,如果您的应用程序在位置更新(如网络活动)上执行繁重的工作,那么您应该为minTime和/或minDistance选择非零值来限制更新频率,以防另一个应用程序以极快的速度启用位置提供程序更新。

如果提供者被用户禁用,则更新将停止,并且将发送提供者可用性更新。 一旦提供程序再次启用,位置更新将立即恢复并发送提供程序可用性更新。 提供者还可以随时发送状态更新,并附加特定于提供者的更新。 如果回调供给则状态和可用性更新是通过onProviderDisabled(String)onProviderEnabled(String)或者onStatusChanged(String, int, Bundle) 或者,如果提供了待处理的意图,则状态和可用性更新是具有KEY_PROVIDER_ENABLEDKEY_STATUS_CHANGED额外密钥的广播意图。

如果使用LocationListener ,但没有指定Looper,则调用线程必须已经是Looper线程,例如调用Activity的主线程。 如果使用LocationListener指定了Looper,则在提供的Looper线程上进行回调。

在Jellybean之前,minTime参数只是一个提示,一些位置提供程序实现忽略了它。 从Jellybean开始,Android兼容设备必须同时观察minTime和minDistance参数。

Parameters
minTime long: minimum time interval between location updates, in milliseconds
minDistance float: minimum distance between location updates, in meters
criteria Criteria: contains parameters for the location manager to choose the appropriate provider and parameters to compute the location
intent PendingIntent: a PendingIntent to be sent for each location update
Throws
IllegalArgumentException if criteria is null
IllegalArgumentException if intent is null
SecurityException if no suitable permission is present

requestLocationUpdates

Added in API level 1
void requestLocationUpdates (String provider, 
                long minTime, 
                float minDistance, 
                LocationListener listener, 
                Looper looper)

使用指定的提供程序注册位置更新,并在指定的Looper线程上进行回调。

有关如何使用此方法的更多详细信息,请参阅 requestLocationUpdates(long, float, Criteria, PendingIntent)

Parameters
provider String: the name of the provider with which to register
minTime long: minimum time interval between location updates, in milliseconds
minDistance float: minimum distance between location updates, in meters
listener LocationListener: a LocationListener whose onLocationChanged(Location) method will be called for each location update
looper Looper: a Looper object whose message queue will be used to implement the callback mechanism, or null to make callbacks on 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

Added in API level 3
void requestLocationUpdates (String provider, 
                long minTime, 
                float minDistance, 
                PendingIntent intent)

使用指定的提供程序注册位置更新以及待定的意图。

有关如何使用此方法的更多详细信息,请参阅 requestLocationUpdates(long, float, Criteria, PendingIntent)

Parameters
provider String: the name of the provider with which to register
minTime long: minimum time interval between location updates, in milliseconds
minDistance float: minimum distance between location updates, in meters
intent PendingIntent: a PendingIntent to be sent for each location update
Throws
IllegalArgumentException if provider is null or doesn't exist on this device
IllegalArgumentException if intent is null
SecurityException if no suitable permission is present

requestSingleUpdate

Added in API level 9
void requestSingleUpdate (String provider, 
                PendingIntent intent)

使用指定提供者和待定意图注册一个位置更新。

有关如何使用此方法的更多详细信息,请参阅 requestLocationUpdates(long, float, Criteria, PendingIntent)

Parameters
provider String: the name of the provider with which to register
intent PendingIntent: a PendingIntent to be sent for the location update
Throws
IllegalArgumentException if provider is null or doesn't exist
IllegalArgumentException if intent is null
SecurityException if no suitable permission is present

requestSingleUpdate

Added in API level 9
void requestSingleUpdate (String provider, 
                LocationListener listener, 
                Looper looper)

使用指定的提供程序和回调注册一个位置更新。

有关如何使用此方法的更多详细信息,请参阅 requestLocationUpdates(long, float, Criteria, PendingIntent)

Parameters
provider String: the name of the provider with which to register
listener LocationListener: a LocationListener whose onLocationChanged(Location) method will be called when the location update is available
looper Looper: a Looper object whose message queue will be used to implement the callback mechanism, or null to make callbacks on 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

Added in API level 9
void requestSingleUpdate (Criteria criteria, 
                LocationListener listener, 
                Looper looper)

使用Criteria和回调注册一个位置更新。

有关如何使用此方法的更多详细信息,请参阅 requestLocationUpdates(long, float, Criteria, PendingIntent)

Parameters
criteria Criteria: contains parameters for the location manager to choose the appropriate provider and parameters to compute the location
listener LocationListener: a LocationListener whose onLocationChanged(Location) method will be called when the location update is available
looper Looper: a Looper object whose message queue will be used to implement the callback mechanism, or null to make callbacks on the calling thread
Throws
IllegalArgumentException if criteria is null
IllegalArgumentException if listener is null
SecurityException if no suitable permission is present

requestSingleUpdate

Added in API level 9
void requestSingleUpdate (Criteria criteria, 
                PendingIntent intent)

使用条件和待定意图注册单个位置更新。

有关如何使用此方法的更多详细信息,请参阅 requestLocationUpdates(long, float, Criteria, PendingIntent)

Parameters
criteria Criteria: contains parameters for the location manager to choose the appropriate provider and parameters to compute the location
intent PendingIntent: a PendingIntent to be sent for the location update
Throws
IllegalArgumentException if provider is null or doesn't exist
IllegalArgumentException if intent is null
SecurityException if no suitable permission is present

sendExtraCommand

Added in API level 3
boolean sendExtraCommand (String provider, 
                String command, 
                Bundle extras)

将其他命令发送给位置提供者。 可用于支持位置管理器API的提供者特定扩展

Parameters
provider String: name of the location provider.
command String: name of the command to send to the provider.
extras Bundle: optional arguments for the command (or null). The provider may optionally fill the extras Bundle with results from the command.
Returns
boolean true if the command succeeds.

setTestProviderEnabled

Added in API level 3
void setTestProviderEnabled (String provider, 
                boolean enabled)

为给定提供者设置一个启用模拟值。 该值将用于提供者的任何实际值。

Parameters
provider String: the provider name
enabled boolean: the mock enabled value
Throws
SecurityException if mock location app op is not set to allowed for your app.
IllegalArgumentException if no provider with the given name exists

setTestProviderLocation

Added in API level 3
void setTestProviderLocation (String provider, 
                Location loc)

为给定提供者设置模拟位置。

这个位置将被用来代替提供者的任何实际位置。 根据Location类的文档,位置对象的最小数量的字段必须设置为有效的LocationProvider位置。

Parameters
provider String: the provider name
loc Location: the mock location
Throws
SecurityException if mock location app op is not set to allowed for your app.
IllegalArgumentException if no provider with the given name exists
IllegalArgumentException if the location is incomplete

setTestProviderStatus

Added in API level 3
void setTestProviderStatus (String provider, 
                int status, 
                Bundle extras, 
                long updateTime)

为给定提供者设置模拟状态值。 这些值将被用来代替提供者的任何实际值。

Parameters
provider String: the provider name
status int: the mock status
extras Bundle: a Bundle containing mock extras
updateTime long: the mock update time
Throws
SecurityException if mock location app op is not set to allowed for your app.
IllegalArgumentException if no provider with the given name exists

unregisterGnssMeasurementsCallback

Added in API level 24
void unregisterGnssMeasurementsCallback (GnssMeasurementsEvent.Callback callback)

取消注册GPS测量回调。

Parameters
callback GnssMeasurementsEvent.Callback: a GnssMeasurementsEvent.Callback object to remove.

unregisterGnssNavigationMessageCallback

Added in API level 24
void unregisterGnssNavigationMessageCallback (GnssNavigationMessage.Callback callback)

取消注册GNSS导航消息回调。

Parameters
callback GnssNavigationMessage.Callback: a GnssNavigationMessage.Callback object to remove.

unregisterGnssStatusCallback

Added in API level 24
void unregisterGnssStatusCallback (GnssStatus.Callback callback)

删除一个GNSS状态监听器。

Parameters
callback GnssStatus.Callback: GNSS status listener object to remove

Hooray!