如何在没有AlarmManager的情况下使用Android的传感器批处理

时间:2016-03-02 11:32:03

标签: android alarmmanager android-sensors android-wake-lock android-5.1.1-lollipop

我想使用Android 4.4中引入的Androids传感器批处理来节省一些电池电量。我的测试设备可以在其fifo队列中存储184个传感器事件。使用18个事件/秒的采样率我必须每隔10秒冲洗一次传感器。 4.4 Documentation中关于传感器批处理的部分建议:

  

使用该计算设置唤醒警报,使用AlarmManager调用您的服务(实现SensorEventListener)以刷新传感器。

自Android 5.1以来,AlarmManager的最小唤醒间隔为60秒(see here),所以这不起作用?有没有其他方法可以在更短的时间内唤醒设备,或者甚至更好(在电池效率方面)持续保持唤醒锁?我想60秒的约束将有其原因。

1 个答案:

答案 0 :(得分:2)

最小60秒仅适用于重复警报。对于一次性精确报警,您可以有更小的延迟。 documentation也提到了这一点:

  

注意:从API 19开始,所有重复警报都不准确。如果您的应用程序需要精确的交付时间,则必须使用一次性精确警报,每次重新安排如上所述。

实际上,这意味着您需要安排一个确切的警报(使用setExact),当该警报触发时,您需要自己重新安排它。