我正在研究谷歌的活动识别,最后我从这项服务中得到了结果。
但是,该功能requestActivityUpdates(long detectionIntervalMillis, PendingIntent callbackIntent)
似乎无法正常工作。检测间隔不规律,当我当前的活动发生变化时会减少到 30~50 秒。它不像 google I/O 2013 上的现场演示(Google I/O 2013 Location API,从 27:47 到 28:45)。有人对此有同样的问题吗?
我正在研究谷歌的活动识别,最后我从这项服务中得到了结果。
但是,该功能requestActivityUpdates(long detectionIntervalMillis, PendingIntent callbackIntent)
似乎无法正常工作。检测间隔不规律,当我当前的活动发生变化时会减少到 30~50 秒。它不像 google I/O 2013 上的现场演示(Google I/O 2013 Location API,从 27:47 到 28:45)。有人对此有同样的问题吗?
好吧,这有点令人困惑,但变量long detectionIntervalMillis
并没有固定间隔 - 它设置了两次更新之间的最大间隔。
正如官方文档中所说:
detectionIntervalMillis
如果另一个应用程序也以更快的速度请求活动更新,则活动可能会比参数更频繁地接收。当活动检测服务接收到当前活动可能发生变化的信号时,它也可以更快地接收更新,例如如果设备已经静止了很长时间,然后从手机充电器上拔下。
不要直接在 onCreate 上添加 build() 部分,而是尝试添加下面的方法并在 onCreate() 上调用它。并尝试从谷歌示例中跟踪代码我从该示例中删除了代码。
protected synchronized void buildGoogleApiClient() {
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(ActivityRecognition.API)
.build();
}
并添加buildGoogleApiClient()
到您的 onCreate 方法中;)这对我很有用!