Android 位置服务与地图开发全解析
1. 使用传统平台基于位置的服务
在及时性不是关键因素的情况下,可以考虑使用被动位置提供者(Passive Location Provider)。以下是使用示例代码:
String passiveProvider = LocationManager.PASSIVE_PROVIDER;
locationManager.requestLocationUpdates(passiveProvider, 0, 0, myLocationListener);
被动位置提供者仅在其他应用请求位置更新时才会接收更新,使应用可以在不激活位置提供者的情况下被动接收更新。由于更新可能来自任何位置提供者,因此应用必须请求 ACCESS_FINE_LOCATION
权限才能使用被动位置提供者。可以通过在注册的位置监听器接收到的 Location
对象上调用 getProvider
方法来确定每个更新是由哪个位置提供者生成的。
1.1 使用传统位置服务的最佳实践
在应用中使用平台基于位置的服务时,除了考虑之前提到的“使用位置的最佳实践”中的因素外,还需要考虑以下由融合位置提供者自动处理的额外因素:
- 启动时间 :在移动环境中,获取初始位置所需的时间会对用户体验产生显著影响,特别是当应用需要使用位置时。例如,GPS 的启动时间可能较长,需要进行缓解。
- 提供者可用性