【发布时间】:2018-08-04 00:32:06
【问题描述】:
我目前正在开发一个适用于 Android 的示例应用程序,该应用程序使用 用于位置监控的地理围栏,我发现很难遵守 具有 Android Vitals 后台唤醒限制 (https://developer.android.com/topic/performance/vitals/wakeup.html)。
我正在使用 Battery Historian 来监控唤醒,而我们自己的 com.google.android.location.ALARM_WAKEUP_ACTIVITY_DETECTION 的警报频率均低于每小时一次 和 com.google.android.location.ALARM_WAKEUP_LOCATOR 以更高的速率触发。 我尝试将地理围栏响应延迟设置为 5 分钟,并设置 WAKEUP_LOCATOR 警报 大大减少了。尽管如此,ALARM_WAKEUP_ACTIVITY_DETECTION 警报仍然远远超过 10 次/小时的限制。
按照here 的建议,我们使用半径为 100m 的地理围栏并监控出口过渡。我还使用半径高达 2 公里的更大地理围栏来定义何时需要重新加载地理围栏,以避免一次加载过多的地理围栏。
最近的测试是在 Galaxy S8 上的 Android 7.1 上进行的,但这种情况在其他设备上很常见。 有没有人有类似的问题? Google 建议使用地理围栏,尤其是考虑到 Oreo对后台位置请求的限制,所以奇怪的是一个系统监控工具 当这是避免唤醒的建议方法时,会考虑如此多的唤醒。
Ps:我已经阅读了 Yvette Colomb 的回答 here,并且我没有使用位置更新,只有地理围栏服务。我应该放弃吗?
[编辑] 安卓地理围栏的文档可以在这里看到:https://developer.android.com/training/location/geofencing.html
[编辑 2]Android tracker 上有一个问题正在讨论这种情况,但在这方面也没有新的更新
[编辑 3]:问题是在 Google 问题跟踪器上分配的。于~22/08/2018
感谢您的关注,
【问题讨论】:
-
这取决于您的应用目标。 Android vitals 旨在提高 Android 设备的稳定性和性能。收集的数据将帮助您提高应用程序的稳定性和性能。这将帮助您在使用应用程序时最大限度地利用手机电池。它可能需要根据您收到的数据进行一些调整。希望这会有所帮助。
-
感谢您的回答!但我的问题是,即使使用基本的地理围栏,根据谷歌建议的最佳实践,也会使数字超出 Android Vitals 的要求。更糟糕的是,谷歌的所有应用程序(例如谷歌地图)都远远超过唤醒次数(当限制为 10 时达到每小时 14 次唤醒。在我的场景中,我只是在用户离开家时警告用户执行他定义的操作(例如)。我认为要么需要重新评估 Android Vitals 的政策,要么必须更新 Android 地理围栏服务。:(
-
@GabrielFalcone 你找到解决这个问题的办法了吗?
-
@aga 不是一个令人满意的。我最终求助于自己的验证和更大的地理围栏(500m)。它使我的应用程序“更多”地被唤醒,但警报计数器总体上减少了(在最坏的情况下从 15 减少到 ~6),仍然比触发它好。
-
我看到有人为 Android 创建了一个错误报告,但也遇到了同样的问题。但是,该工单仍然具有 New 状态,没有任何响应。票在这里:issuetracker.google.com/issues/78591747 好奇是否有人找到了更好的解决方法。
标签: android google-play-services geofencing wakeup