Android 平台提供了两种传感器来检测设备的方位:地磁传感器和方向传感器。 Android 平台还提供了一种传感器,用于检测屏幕表面与其它物体的邻近程度,即被称为距离传感器。 地磁传感器和距离传感器是基于硬件的。大部分手持和桌面设备都内置了地磁传感器。手持设备通常还内置了距离传感器,用于检测与人脸的靠近程度(比如在通话过程中)。 而方向传感器是基于软件的,它的数据来自加速度传感器和地磁传感器。
注意:自 Android 2.2 (API Level 8) 起,方向传感器已过时。
方位传感器用于确定设备相对地球的物理方位。比如,你可以用地磁传感器和加速度传感器来确定设备相对北极点的方位。 你还可以用方向传感器(或类似的基于传感器的判断方向的方法)来确定设备相对你自己参照系的方位。 方位传感器通常不会用于监测设备的移动情况,诸如震动、倾斜、冲击(详见 运动传感器)。
地磁传感器和方向传感器在 SensorEvent 中返回以多维数组表示的传感器数据。 比如,方向传感器在传感器事件中提供了三个坐标轴方向的地磁强度。 同理,方向传感器还在事件中给出了方位角(侧倾度)、俯仰度和翻滚度。
关于传感器使用的坐标系,请参阅 传感器的坐标系。 距离传感器在事件中给出的是一个值。表 1列出了 Android 平台支持的所有方位传感器。
表 1. Android 平台支持的方位传感器
传感器
传感器事件中的数据
说明
计量单位
SensorEvent.values[0]
x 轴的地磁强度
μT
SensorEvent.values[1]
y 轴的地磁强度
SensorEvent.values[2]
z 轴的地磁强度
SensorEvent.value