Pra*_*anD 5 android android-location android-8.0-oreo android-8.1-oreo
https://developer.android.com/about/versions/oreo/background-location-limits
为了降低功耗,Android 8.0(API级别26)限制了后台应用可以检索用户当前位置的频率。应用每小时只能接收几次位置更新。
该文档未提供有关后台位置检索频率限制的任何细节。
假设我的应用程序未在Android O设备上运行并且没有收到任何被动位置更新,我可以可靠地期望它接收到位置更新多少次?
有多少次是“只有几次”到底是什么?
现在是一个相当老的问题了,但我最近花了很多时间试图让这样的应用程序工作。我在旧版 Android 中拥有一个完美的应用程序,但现在看来这是不可能的。
答案可能会因设备而异,但使用我的 Galaxy S7 设备 (Oreo),我可以根据需要设置位置,甚至每 5 秒一次。但闲置 45-60 分钟后,服务会变慢,直到应用程序再次手动进入前台。
我尝试过使用唤醒锁和“setAndAllowWhileIdle()”的作业调度程序、Worker、AlarmManager、AlarmManager,它们都给出相同的结果:完全活动的位置更改持续 45 分钟左右,而不是每 15 分钟左右才更改一次(如果你很幸运:这可能会超过一个小时,而且似乎不可预测)
[编辑,一年后]我现在已经成功地改进了这一点,通过每小时重新启动(后台)位置服务(使用警报),根据要求每 2 分钟继续更新一次(现在已经持续了一周多了......) - 但是仅当设备已通电或移动时。如果使用电池,并且位置没有改变,更新将恢复为每小时左右。在 android 11 上也是如此。请参阅我的新问题
| 归档时间: |
|
| 查看次数: |
764 次 |
| 最近记录: |