如何在Android Wear上使用加速计记录划船行程

如何在Android Wear上使用加速计记录划船行程,android,accelerometer,wear-os,Android,Accelerometer,Wear Os,我的目标是在我的Android手表(Sony Smartwatch)上显示一个简单的笔划速度检测器,为此我需要检测手表何时从向前移动变为向后移动 我已经编写了代码,可以获取onSensorChanged事件中检测到的事件值(x、y、z)(并在手表上显示),但我很难理解这些 我知道这些值表示给定轴上的加速度,我知道z表示重力。但如果这些值只是报告加速度,我不清楚如何知道何时方向发生变化。我假设一个正数表示加速,一个0表示恒速,一个负数表示减速……对吗?如果是这样的话,我怎样才能检测到手表何时从前进

我的目标是在我的Android手表(Sony Smartwatch)上显示一个简单的笔划速度检测器,为此我需要检测手表何时从向前移动变为向后移动

我已经编写了代码,可以获取onSensorChanged事件中检测到的事件值(x、y、z)(并在手表上显示),但我很难理解这些

我知道这些值表示给定轴上的加速度,我知道z表示重力。但如果这些值只是报告加速度,我不清楚如何知道何时方向发生变化。我假设一个正数表示加速,一个0表示恒速,一个负数表示减速……对吗?如果是这样的话,我怎样才能检测到手表何时从前进方向变为后退方向


提前感谢。

Android Wear在检测运动方面与“传统”Android没有什么不同。基本上,你需要精确地考虑加速度计的记录:原始加速度(具有强的< <强> >噪声)。要从中确定运动,您需要查看随时间变化的趋势,并可能整合平滑的加速度计数据。这不是小事

您可能会想使用
TYPE\u LINEAR\u ACCELERATION
,因为它过滤掉重力(这与您的用例无关)。而且,由于手表在划船过程中可能会经历一些旋转(您希望将其计算出来),因此您可能需要将
TYPE_rotation_VECTOR
与加速度矢量相结合,以准确确定方向变化

以下几个问题可能有助于为您指明正确的方向:


当然,我并没有尝试过这个特定的问题,但我已经在Android运动传感器方面做了足够多的其他工作,我知道你面前有一个很好的编程挑战。享受吧

谢谢你的输入和指点,哇,我得掸掉我那本很旧的数学书了。