可用的Android设备传感器列表

时间:2011-11-21 19:21:01

标签: android android-sensors

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

 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。

3 个答案:

答案 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()结果来自给定类别的传感器数组......