当应用请求设备的位置时,它可以等待请求响应,或者通过使用主动位置监听器来获取机会性位置更新。这在 Android 9 及更低版本中可用(无限制),并且当应用仅指定主动位置更新速率,而将被动速率留空时提供。(被动位置监听器不接收机会性位置更新,因为它们不指定位置更新速率。)
从 Android 10 开始,要获得机会性位置更新,开发者必须指定他们需要来自 FusedLocationProviderClient
类的被动位置更新。
融合位置提供器
应用可以通过两种方式指定从 FusedLocationProviderClient
类获取机会性位置更新的速率。
- 在
setFastestInterval
方法中指定一个低于setInterval
参数的值。(使用 0 毫秒或更大的值。) - 让值自动设置,方法是不指定
setFastestInterval
。
影响
如果您不为 setFastestInterval
提供值,您的应用可能会遇到传送给它的位置更新显著减少的情况。
实现
您无需执行任何操作来实现此功能,只需对 FusedLocationProviderClient
类的 setFastestInterval
方法使用建议的值即可。