首页 > 解决方案 > Android Activity Recognition 真的很糟糕

问题描述

我试图在 Android 上检测“行走”与“静止”的简单状态。为此,我按照官方的 Google codelab实现了ActivityRecognitionClient

基本上一切都取决于您对 API 的请求,它是:

ActivityRecognition.getClient(this).requestActivityUpdates(refreshRate, pendingIntent) 如果您想控制更新的频率,或者

ActivityRecognition.getClient(this).requestActivityTransitionUpdates(request, pendingIntent)如果您想让 API 控制更新的频率。

然后得到result

if (ActivityRecognitionResult.hasResult(intent))
    val result = ActivityRecognitionResult.extractResult(intent).getMostProbableActivity()

在尝试了 codelab 最终代码、几个 Google Play 应用程序和我自己的实现之后,我的结论是这个 API 真的很糟糕,它不会“检测”状态,除非它检测到类似或之前的STILL其他移动状态,它检测到移动状态仅在设备停止移动时状态实际完成时才接近,它会发送很多结果WALKINGRUNNINGUNKNOWN

我的结论是否有任何错误,如果不是x,我应该只听加速度计传感器并自己处理原始数据以识别步行状态吗?yz

标签: androidaccelerometeractivity-recognition

解决方案


推荐阅读