我的目标是在我的Android手表(Sony Smartwatch)上显示一个简单的笔画速率检测器,为此,我需要检测手表何时从向前移动到向后移动。
我有代码工作,它将获得在onSensorChanged事件中检测到的事件值(x,y,z)(并在手表上显示它们),但我很难理解这些。
我理解值报告给定轴的加速度,我知道z报告重力。但如果这些值仅报告加速度,我不清楚如何知道何时改变方向。我假设正数表示加速度,0表示恒定速度,负数表示减速...这是正确的吗?如果是这样,我怎样才能发现Watch何时改变方向从前进到后退?
提前致谢。
答案 0 :(得分:0)
Android Wear与"传统"没有区别。 Android在检测动作方面。基本上,您需要准确考虑加速度计记录的内容:原始加速度(噪声很多)。要确定 motion ,您需要查看一段时间内的趋势,并可能整合平滑的加速度计数据。这不是一件轻而易举的事。
您可能希望使用TYPE_LINEAR_ACCELERATION
sensor,因为它会过滤掉重力(与您的使用案例无关)。并且因为手表在划船行程中可能会经历一些旋转(您想要分解),您可能需要将TYPE_ROTATION_VECTOR
与加速度矢量相结合以准确确定方向变化。
其他几个问题可能会帮助您指明正确的方向:
我当然没有尝试过这个特定的问题,但是我已经做了足够的Android动作传感器工作,知道你面前有一个很好的编程挑战。享受吧!