4

我正在研究谷歌的活动识别,最后我从这项服务中得到了结果。

但是,该功能requestActivityUpdates(long detectionIntervalMillis, PendingIntent callbackIntent)似乎无法正常工作。检测间隔不规律,当我当前的活动发生变化时会减少到 30~50 秒。它不像 google I/O 2013 上的现场演示(Google I/O 2013 Location API,从 27:47 到 28:45)。有人对此有同样的问题吗?

4

2 回答 2

2

好吧,这有点令人困惑,但变量long detectionIntervalMillis并没有固定间隔 - 它设置了两次更新之间的最大间隔。

正如官方文档中所说:

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

文档

于 2014-04-10T15:35:08.853 回答
0

不要直接在 onCreate 上添加 build() 部分,而是尝试添加下面的方法并在 onCreate() 上调用它。并尝试从谷歌示例中跟踪代码我从该示例中删除了代码。

protected synchronized void buildGoogleApiClient() {
    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .addApi(ActivityRecognition.API)
            .build();
}

并添加buildGoogleApiClient()到您的 onCreate 方法中;)这对我很有用!

于 2015-05-27T16:31:00.873 回答