1

我已成功设置活动识别跟踪,但它需要使用活动更新间隔。

ActivityRecognition.ActivityRecognitionApi.requestActivityUpdates(
            googleApiClient,
            updateInterval,
            activityRecognitionPendingIntent)
            .setResultCallback(this);

有没有办法避免这种情况并在需要时要求进行活动?

例如:ActivityRecognition.getCurrentActivities();?

4

2 回答 2

0

如果您希望收到有关活动更改的通知,但仅当它与您当前的活动不同时,请执行以下操作:

  1. 捕获初始活动并以可持久化的方式存储枚举(静态变量、SharedPreferences 等)。
  2. 如果您获得下一个更新,请检查它是否与上一个相同。如果没有,请报告新活动。如果相同,就通过。
  3. 将间隔设置为您希望更新发生的频率。较长的延迟将大大提高节能效果。
于 2016-04-15T18:45:01.627 回答
0

需要更多信息才能完全回答您的问题,但是,这里有一个要验证的事项清单:

1.您是否进行过 GoogleApiClient.Builder api 调用?假设您的代码示例中使用了参数 googleApiClient 。

  1. 您调用的类是否实现了 GoogleApiClient.ConnectionCallbacks、GoogleApiClient.OnConnectionFailedListener、ResultCallback

  2. 您的 ActivityRecognitionPendingIntent 方法是否实例化一个新的 Intent 并使用它调用 PendingIntent.getService ?

  3. 您的 pendingIntent.getService 调用是否使用 PendingIntent.FLAG_UPDATE_CURRENT

于 2016-03-22T17:33:28.080 回答