android - 调用 requestLocationUpdates 后,位置服务是否至少发送了一个位置?

标签 android android-location android-fusedlocation

在使用 LocationServices.FusedLocationApi.requestLocationUpdates 设置接收位置更新时,我需要确保至少获得一个位置。

例如,如果设备已经静止了很长时间,在调用 LocationServices.FusedLocationApi.requestLocationUpdates 之后,它是否会触发最后已知的位置?还是我也必须调用 LocationServices.FusedLocationApi.getLastLocation

最佳答案

根据我的经验,您必须调用 LocationServices.FusedLocationApi.getLastLocation() 以确保立即获得位置对象,即使该方法也可能在设备重启后立即返回 null

LocationServices.FusedLocationApi.requestLocationUpdates() 将在有新的或相对较新的位置可用且在准确性、能量等方面与您的请求参数相匹配时给您回电,但如果没有与您的参数匹配的位置可用,它可能会暂时不会回拨。例如,如果您请求需要 GPS 的高精度位置,并且最近没有使用 GPS,并且设备位于阻止 GPS 信号接收的位置,则在设备再次获得 GPS 信号之前,您可能看不到回调。

关于android - 调用 requestLocationUpdates 后,位置服务是否至少发送了一个位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43788155/

相关文章:

android - 如何使用 Work Manager 处理来自 FusedLocationProviderClient 的位置更新?

Android - 由于位置权限从设置中撤销而导致应用程序崩溃

android - 用于 ListView 宽度的 wrap_content

android - acct文件夹android

android - 通过 Android 应用程序即时获取 GPS 位置

android - 位置一开始是空的

java - Android:从服务将字节转换为位图数据为空

java - Vogella Android 教程,Android Studio 中的编译器错误

java - 使用 pubnub 制作 Android 应用程序发送 GPS 信息,但应用程序崩溃并且没有显示错误

android - 在FusedApi中有问题