1

我们现在可以使用 ActivityRecognitionClient 类。开发文档展示了如何在活动中使用它:

http://developer.android.com/training/location/activity-recognition.html

有没有办法让操作系统在遇到特定活动类型时通知我们的应用程序?例如,当活动类型状态从停止变为骑自行车时,我希望操作系统调用我的应用程序。

该示例使我们似乎需要将 ActivityRecognitionClient 与受应用程序生命周期绑定的 Activity(或片段)一起使用。

理想情况下,尽管我们可以向操作系统注册标准,类似于地理围栏请求。我想作为一种解决方法,我们可以每 N 秒运行一个服务,创建一个 ActivityRecognitionClient 实例,听它几秒钟,然后把所有东西都拆掉。

谢谢

4

1 回答 1

0

我一直在使用当前项目的新客户端类。到目前为止,我最好的方法是创建一个前台服务(因为我的用户需要知道该服务正在运行),该服务建立与识别客户端的连接,并创建对 IntentService 的待处理意图,该 IntentService 执行我的处理在更新期间发现的检测到的活动。

根据您的要求,您可以发送广播(本地或其他),因为 DetectedActivity 是可解析的,或者执行我所做的将 DetectedActivity 传递回我的前台服务以在其 onStartCommand 中进行处理。

于 2013-05-30T19:49:27.413 回答