0

嗨,我想知道您从 TYPE_LINEAR_ACCELERATION 获得的读数是否是没有重力的加速度计读数,是否与您从 IOS 中的 userAcceleration 获得的读数相当。据我所知,它们是加速度计读数减去重力,但只是想确保因为 Apple 没有发布任何源代码。

4

1 回答 1

2

是的,它们是相同的,因为它们都测量总加速度减去重力(即用户施加在设备上的加速度)。

需要注意的重要一点是,iOS 和 Android 的测量单位和参考框架是不同的。Android 以 m/s^2 为单位测量加速度,而 iOS 以 g 为单位测量加速度(大约 9.81 m/s^2)。参考框架在文档中看起来是相同的(参见下面的链接),但 iOS 参考框架实际上与 Android 参考框架相反。例如,当设备静止在桌子上时,iOS 在 z 轴上的测量值约为 -1.0,而 Android 的测量值约为 9.81 m/s^2(请注意,iOS 值为负,Android 值为正)。

要将 iOS 读数转换为 Android 参考框架和测量单位,您可以将所有轴(x、y 和 z)的 iOS 读数乘以 -g(大约 -9.81):

acc_x_iOS * -9.81 ≡ acc_x_Android
acc_y_iOS * -9.81 ≡ acc_y_Android
acc_z_iOS * -9.81 ≡ acc_z_Android

iOS 文档:https ://developer.apple.com/documentation/coremotion/getting_processed_device-motion_data/understanding_reference_frames_and_device_attitude

Android 文档:https ://developer.android.com/guide/topics/sensors/sensors_overview

于 2019-05-21T13:09:36.143 回答