活动识别可能会给你带来一些误报,无论你提高置信水平有多高。因此,例如,如果我想在用户开车时发出通知,我需要构建某种状态机。
例如:
当我使用IN_VEHICLE
获得CONFIDENCE > 70
次更新30秒时,我会发送通知
或
当我使用IN_VEHICLE
连续3次CONFIDENCE > 70
次更新时,我会发送通知
但实施时存在不同的问题。有时你会得到非常频繁的更新(第二次失败),或者你有非常罕见的更新(第一次失败)。
如何设计这个以便在状态之间进行更平滑的过渡?
答案 0 :(得分:1)
我认为本教程 - How to Recognize User Activity With Activity Recognition会对您有所帮助。而且,正如本教程中所提到的,使您的应用程序具有上下文感知能力是向用户提供有用服务的最佳方式之一。
处理活动识别:
在
onHandleIntent()
的{{1}}方法中,您要做的第一件事是验证收到的ActivityRecognizedService
是否包含活动识别数据。如果是,则可以从Intent
中提取ActivityRecognitionResult
以查看您的用户可能正在执行的活动。您可以通过调用Intent
对象上的getProbableActivities()
来检索可能活动的列表。
使用的源文件可以在GitHub中找到 - Android-ActivityRecognition。