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

Android 为什么ActivityRecognitionApi中的requestActivityUpdates()在调用时要求连接现有的GoogleAppClient?,android,google-play-services,activity-recognition,Android,Google Play Services,Activity Recognition,要使用Google Play服务,您需要与Google连接。例如,我知道FusedProviderApi可能会扫描WiFi接入点或手机发射塔ID,然后将它们发送到谷歌进行搜索并输出位置。但是这种活动检测应该不会太麻烦,那么发生了什么呢?这就是他们所说的: “通过定期唤醒设备并读取短时间的传感器数据来检测这些活动。它只使用低功耗传感器,以将功耗保持在最低水平。例如,它可以检测用户当前是在步行、在车内、骑自行车还是静止。” 他们是否也需要咀嚼服务器中的低功耗(加速计/磁强计/陀螺仪)传感器数据?或者

要使用Google Play服务,您需要与Google连接。例如,我知道FusedProviderApi可能会扫描WiFi接入点或手机发射塔ID,然后将它们发送到谷歌进行搜索并输出位置。但是这种活动检测应该不会太麻烦,那么发生了什么呢?这就是他们所说的:

“通过定期唤醒设备并读取短时间的传感器数据来检测这些活动。它只使用低功耗传感器,以将功耗保持在最低水平。例如,它可以检测用户当前是在步行、在车内、骑自行车还是静止。”

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


编辑:在测试之后,我发现.connect()调用尽管有语义,但并不一定要连接到任何东西,因为您可以在没有internet连接的情况下执行它。这个方法(以及onConnect()回调)让我想到,如果不是这样的话,必须连接到他们的服务器。将cYrixmorten的答案标记为正确。

我认为只需要

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

    为了避免设置ApiClient等繁琐的工作,我在这个库中添加了活动识别: