为什么ActivityRecognitionApi中的requestActivityUpdates()要求在此次调用时连接现有的GoogleApiClient?

时间:2014-11-29 12:25:27

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

要使用Google Play服务,您需要与Google建立联系。例如,我知道FusedProviderApi可以扫描WiFi AP或Cell tower Ids并将它们发送给谷歌进行咀嚼并输出一个位置。但是这种活动检测不应该是一个麻烦,所以发生了什么?这就是他们所说的:

“通过定期唤醒设备并读取短时间传感器数据来检测活动。它只使用低功率传感器以将功率使用保持在最低限度。例如,它可以检测用户是否现在步行,骑车,骑自行车或静止。“

他们是否还需要在服务器中咀嚼低功率(加速度计/磁力计/陀螺仪)传感器数据?或者他们只是收集这些信息来构建一些人群来源的模型?即使我当时没有连接到他们的服务器,我还能检测到活动吗?或者它会存储定期进行的测量,直到它与服务器连接?有人试过吗?

编辑:经过测试后,我发现.connect()调用虽然有语义,但并不一定能与任何东西建立连接,因为你可以在没有互联网连接的情况下执行它。这个方法(以及onConnect()回调)让我认为在不是这种情况时必须与他们的服务器建立连接。将cYrixmorten的答案标记为正确。

1 个答案:

答案 0 :(得分:2)

我认为只需要

  1. 确认您在代码的该部分中有适当的apiClient
  2. 可能会更新与之匹配的模式。
  3. 我认为它不会调用任何与Google Play服务有关的连接,因为他们的示例项目在请求活动识别后立即与其断开连接。

    为避免必须进行设置ApiClient等繁琐的工作,我已将活动识别添加到此库中:https://github.com/mcharmas/Android-ReactiveLocation