无法更改Google Play服务的活动识别的请求间隔

时间:2014-01-27 04:36:58

标签: android google-play-services activity-recognition

如标题所述,我的问题是无法正确控制活动识别请求。我的代码是这样的:

arclient.requestActivityUpdates(ACTIVITY_DETECT_INTERVAL, pIntent);

ACTIVITY_DETECT_INTERVAL = 2 * 60 * 1000(2分钟),

但是日志显示

01-27 12:21:49.412: I/ActivityRecognitionService(5458): Still   92
01-27 12:21:54.462: I/ActivityRecognitionService(5458): Still   92
01-27 12:21:59.492: I/ActivityRecognitionService(5458): Still   69
01-27 12:22:04.562: I/ActivityRecognitionService(5458): Still   76
01-27 12:22:09.662: I/ActivityRecognitionService(5458): Still   76
01-27 12:22:14.592: I/ActivityRecognitionService(5458): Still   92
01-27 12:22:19.612: I/ActivityRecognitionService(5458): Still   77
01-27 12:22:24.622: I/ActivityRecognitionService(5458): Still   92
01-27 12:22:29.672: I/ActivityRecognitionService(5458): Still   92
01-27 12:22:34.892: I/ActivityRecognitionService(5458): Still   85
01-27 12:22:39.812: I/ActivityRecognitionService(5458): Still   92

事实证明,间隔总是5秒。谁能帮助我,提前谢谢。

1 个答案:

答案 0 :(得分:2)

根据requestActivityUpdates documentation

  

如果另一个应用程序也以更快的速率请求了活动更新,则可能比detectIntervalMillis参数更频繁地接收活动。当活动检测服务收到当前活动可能发生变化的信号时,例如,如果设备已经静止很长时间,然后从手机充电器上拔下,它也可以更快地接收更新。

您当然可以过滤掉自己应用程序中的事件(假设您存储上次收到事件的时间,然后忽略当时和之后2分钟内的事件),但无法限制传入活动的数量更新超出手机上最耗电的应用程序请求或您的请求,无论大小。