Android活动识别问题

时间:2017-03-23 17:04:03

标签: android android-activity android-intentservice activity-recognition

我正在开发Android原生应用程序。我的要求是获取设备的当前活动,如running,in_vehicle,still等。我使用ActivityRecognitionAPI并将pendingintent设置为通过IntentService接收活动更改。我给每个更新的时间间隔为5秒。它未能在一定时间内提供活动变化,并再次开始提供活动。之后我更喜欢Awareness SnapshotAPI来获取活动状态。它也同样的结果,未能定期提供活动。这两种API有时提供,有时不提供。我使用GooglePlayServices 10.2.0版本进行开发。任何人都知道这些事情的原因和解决方案,以获得定期的活动更新..

提前致谢。

我正在尝试展示我的应用用户的活动,比如他正在走路,跑步等等。这是我的要求。

方式1:

//使用ActivityRecognition.API的Google API客户端

Measurement

**我尝试过这种方式来获取活动更新。它开始提供活动信息,但有时不调用Intent服务,并再次启动触发意图。所以我无法显示正确的活动信息。

方式2:

//使用Awareness.API的Google API客户端

Value

**我尝试了另一种方式,使用此Api,我们可以递归调用此方法并经常获取活动信息。但它也有时提供并且有时检测到的ActivityResult.getStatus()没有成功。如果我想获取状态代码和状态消息,状态代码将返回15并且状态消息将为空。

这两种方式都无法定期更新活动,而且我使用的是GooglePlayService 10.2.0版本。我已经从Github测试了ActivityScognition的GoogleSamples。这也是同样的结果。我不知道如何达到我的要求。希望你现在能理解我的要求和我所面对的事情。

3 个答案:

答案 0 :(得分:0)

获得回复后再次调用此方法:

我建议将detectIntervalMillis设置为0.这将导致尽快获取数据。(注意电池消耗)

ActivityRecognition.ActivityRecognitionApi.requestActivityUpdates(googleApiClient,o, callbackIntent);

答案 1 :(得分:0)

Google的ActivityRecognitionAPI并不定期提供更新。根据我的注意,如果活动的置信度或活动完全改变,那么它会发送更新。即使这样,它也需要时间来确保数据读取不仅仅是某种噪音。

我不确定您为什么需要定期更新,但我建议更改逻辑以接受最后一个给定的活动作为当前活动,并仅根据更改进行操作(即STILL - &gt ; IN_VEHICLE)。

答案 2 :(得分:0)

如果长时间没有变化,它将不会发送更新,直到发生变化......