Android Vitals针对Google Play服务地理围栏发出了过多的WakeUps警告

问题描述 投票:19回答:1

我目前正在使用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 /小时限制。

我们使用半径为100米的地理围栏,并按照推荐的here监控出口过渡。我还使用了一个更大的地理围栏,半径可达2公里,以确定何时我需要重新加载地理围栏,以避免一次装载太多地理围栏。

最近的测试是在Galaxy S8上的Android 7.1上进行的,但这种情况在其他设备上是常规的。有没有人有类似的问题? Google推荐使用Geofences,特别是考虑到Oreo对后台位置请求的限制,因此系统监控工具在建议的避免方式时会占用大量唤醒,这很奇怪。

Ps:我已经阅读了Yvette Colomb回答here,我没有使用位置更新,只使用Geofence服务。我应该放弃它吗?

[编辑]关于android的地理围栏的文档可以在这里看到:https://developer.android.com/training/location/geofencing.html

[编辑2] Android tracker上有一个问题正在讨论这种情况,但在这方面没有新的更新

[编辑3]:该问题已在Google问题跟踪器上分配。在~22 / 08/2018

感谢您的关注,

android google-play-services geofencing wakeup
1个回答
-1
投票

这是com.google.android.location.ALARM_WAKEUP_LOCATOR每隔60秒唤醒设备并使其保持唤醒状态长达15秒的问题,导致严重的电池排水问题。

对于地图,您必须设置更多时间来更新位置间隔..在我的情况下,我这样做让我知道它是否有效

 private long UPDATE_INTERVAL = 5 * 6000;
    private long FASTEST_INTERVAL = 6000;
//Set max update intervel for remove excessive wakeups...
        mLocationRequest.setInterval(UPDATE_INTERVAL);
        mLocationRequest.setFastestInterval(FASTEST_INTERVAL);
        mLocationRequest.setMaxWaitTime(30 * 60000);
        mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
© www.soinside.com 2019 - 2024. All rights reserved.