1

我的手机有以下传感器列表:

 BMA150 3-axis Accelerometer, Type: 0, Vendor: The Android Open Source Project, Version: 1, Power: 3.0, Resolution: 2.480159E-4, Max Range: 2.8
 AK8973 3-axis Magnetic field sensor, Type: 0, Vendor: The Android Open Source Project, Version: 1, Power: 6.7, Resolution: 1.0, Max Range: 2000.0
 AK8973 Orientation sensor, Type: 0, Vendor: The Android Open Source Project, Version: 1, Power: 9.7, Resolution: 1.0, Max Range: 360.0
 APDS9900 Proximity sensor, Type: 8, Vendor: AVAGO, Version: 1, Power: 0.5, Resolution: 1.0, Max Range: 1.0
 APDS Light sensor, Type: 5, Vendor: AVAGO, Version: 1, Power: 0.5, Resolution: 1.0, Max Range: 10240.0
 MPL rotation vector, Type: 11, Vendor: Invensense, Version: 1, Power: 0.5, Resolution: 1.0, Max Range: 10240.0
 MPL linear accel, Type: 10, Vendor: Invensense, Version: 1, Power: 0.5, Resolution: 1.0, Max Range: 10240.0
 MPL gravity, Type: 9, Vendor: Invensense, Version: 1, Power: 0.5, Resolution: 1.0, Max Range: 10240.0
 MPL Gyro, Type: 4, Vendor: Invensense, Version: 1, Power: 0.5, Resolution: 1.0, Max Range: 10240.0
 MPL accel, Type: 1, Vendor: Invensense, Version: 1, Power: 0.5, Resolution: 1.0, Max Range: 10240.0
 MPL magnetic field, Type: 2, Vendor: Invensense, Version: 1, Power: 0.5, Resolution: 1.0, Max Range: 10240.0
 MPL Orientation (android deprecated format), Type: 3, Vendor: Invensense, Version: 1, Power: 9.7, Resolution: 1.0, Max Range: 360.0

我想知道,为什么加速度计有两个传感器,两个磁性传感器和两个方向传感器,其中有源传感器已被弃用?

这些休眠传感器有什么作用吗?

谢谢,

亚当泽哈维。

4

3 回答 3

4

我强烈建议只使用标准的 Android 传感器,例如

旋转矢量传感器、重力传感器、直线加速度传感器、方向传感器

而不是 MPL 类型。MPL 类型是来自 Invensense 的特定于组件的非标准功能,无法在其他手机上使用。

此外,我在我的 Galaxy Nexus 上试用了这两种类型,发现上面列出的标准 Android 传感器提供比 MPL 类型更好的传感器数据融合结果。例如,旋转矢量传感器比 MPL 旋转矢量更好地补偿磁失真。

于 2011-12-20T22:55:48.470 回答
3

您的手机只有一组物理传感器,但不同的库可能会读取它并提供 Android 接口。MPL 传感器使用 Invensense 运动处理库,该库融合来自传感器的数据并提供(希望得到改进的)过滤结果。我的猜测是,Android 传感器提供的东西接近传感器的原始数据。

不推荐使用整个方向传感器类型,而不仅仅是一个特定的传感器。术语“方向”是指纵向/横向,很容易与旋转矢量传感器混淆,后者返回完整的 3D 方向。

为了获得最佳兼容性,请勿对特定传感器的使用进行硬编码。如有必要,使用SensorManager.getDefaultSensor()方法并使用传感器的属性来调整应用程序的行为。

于 2012-07-07T20:58:08.150 回答
0

我看到您有例如 2 个方向传感器,但一个是 0 型,另一个是 3 型。我只开发 Delphi Xe5 Android 应用程序,并且传感器类型声明了传感器功能。例如方向类型 0:指南针 1D,类型 3:倾斜计 1D。

我认为它在 Java 中的工作方式与在 XE5 中类似吗?

XE5 的文档非常泄漏,但另一个证据是来自 IDE Demos Application 的代码: LSensorArray := TSensorManager.Current.GetSensorsByCategory(ASensorCategory); GetSensorsByCategory() 结果与来自给定类别的传感器数组...

于 2013-12-23T15:01:34.807 回答