Android中的Sensor.TYPE_LINEAR_ACCELERATION与IOS中的userAcceleration是否相同

时间:2019-03-11 02:55:11

标签: android ios accelerometer cmattitude

您好,我想知道您从TYPE_LINEAR_ACCELERATION获得的读数是否是没有重力的加速度计读数,是否等于从IOS中的userAcceleration获得的读数。从我所看到的,它们是加速度计读数减去重力,但只是要确定一下,因为Apple不会发布任何源代码。

1 个答案:

答案 0 :(得分:0)

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

要注意的一件事是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