Nat*_*han 5 gps android location locationmanager
现场用户报告了应用程序中 GPS 位置的随机问题。该应用程序使用 LocationManager 已有大约 12 年,几乎没有进行任何修改。
通过在运行 Android 12 的 Pixel 3 上进行测试,我发现了一些不可预测的行为。这些行为包括位置偏离半英里,并且除非其他应用程序使用 GPS,否则不会定期更新。
Android 11/12 中的位置管理器是否有一些不同之处?如果是这样,它们记录在哪里?我的代码从 Android 1.5 开始就运行良好。
我通过库使用它,但反编译给了我这个调用:
mLocationManager.requestLocationUpdates("gps", 250, 1, listener);
Run Code Online (Sandbox Code Playgroud)
我把它改为
mLocationManager.requestLocationUpdates("gps", 100, 0, listener);
Run Code Online (Sandbox Code Playgroud)
它工作了一段时间,然后又停止工作了。更新不进来。
即使文档说我不应该需要后台位置来在活动或前台服务中使用位置,它是否需要后台位置?
如果不是,那到底是怎么回事?
前台服务仍然需要后台位置权限才能访问位置。这是因为它对用户来说并不明显,只是因为那里有一条通知表明它仍在使用 GPS。是的,这是在 Android 11 中添加的: https://developer.android.com/guide/components/foreground-services#bg-access-restrictions
| 归档时间: |
|
| 查看次数: |
2965 次 |
| 最近记录: |