我的手机有以下传感器列表:
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
我想知道,为什么有两个传感器用于加速度计,两个磁力传感器和两个方向传感器从哪个传感器被弃用?
这些休眠传感器是否有任何功能?
谢谢,
Adam Zehavi。
答案 0 :(得分:4)
我强烈建议您只使用标准的Android传感器,例如
旋转矢量传感器, 重力传感器, 线性加速度传感器, 方向传感器
而不是MPL类型。 MPL类型是Invensense中特定于组件的非标准功能,不适用于其他手机。
另外,我在我的Galaxy Nexus上尝试了这两种类型,发现上面列出的标准Android传感器提供了比MPL类型更好的传感器数据融合结果。 例如。旋转矢量传感器可以更好地补偿MPL旋转矢量的磁失真。
答案 1 :(得分:2)
您的手机只有一套物理传感器,但不同的库可能会读取它并为Android提供界面。 MPL传感器使用Invensense运动处理库,该库融合来自传感器的数据并提供(希望改进的)滤波结果。我的猜测是Android传感器提供了与传感器原始数据接近的东西。
不推荐使用方向传感器类型,而不仅仅是一个特定的传感器。术语“方向”指的是纵向/横向,它很容易与旋转矢量传感器混淆,后者返回完整的3D方向。
为获得最佳兼容性,请勿对特定传感器的使用进行硬编码。使用SensorManager.getDefaultSensor()方法并使用传感器的属性在必要时调整应用程序的行为。
答案 2 :(得分:0)
我看到你有两个方向传感器,但一个是0型,另一个是3型。 我只开发Delphi Xe5 Android应用程序,并且有传感器声明传感器功能。例如,方向类型0:指南针1D,类型3:测斜仪1D。
我认为它在Java中与XE5类似吗?
XE5的文档非常容易泄漏,但另一个证据就是来自IDE演示应用程序的代码:LSensorArray:= TSensorManager.Current.GetSensorsByCategory(ASensorCategory); GetSensorsByCategory()结果来自给定类别的传感器数组......