'活动检测API'仅获取当前活动一次

时间:2016-02-23 15:29:45

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

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

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

有没有办法避免这种情况并在需要时询问活动?

例如:ActivityRecognition.getCurrentActivities();?

2 个答案:

答案 0 :(得分:0)

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

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

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

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

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

答案 1 :(得分:0)

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

  1. 捕获初始活动并以可持久的方式存储enum(静态变量,SharedPreferences等)。
  2. 如果您获得下一次更新,请检查它是否与最后一次更新enum。如果没有,请报告新活动。如果它是相同的,只需通过。​​
  3. 将间隔设置为您希望更新发生的频率。较长的延迟将大大提高功耗。