本文譯自:http://developer.android.com/guide/topics/sensors/sensors_position.html
Android平台提供了兩種用於判斷裝置位置的感應器:地磁場感應器和方向感應器。Android平台還提供一種判斷裝置的面板是否接近一個對象的感應器(即距離感應器)。地磁場感應器和距離感應器是基於硬體的。大多數手持功能和平板電腦製造商都在其裝置中包含了一個地磁場感應器。同樣手持功能製造商也他們的裝置中包含一個距離感應器,用於判斷手持功能是否靠近人臉(如,在撥打電話期間)。方向感應器是基於軟體的,並且要從加速度感應器和地磁場感應器來擷取資料。
注意:方向感應器在Android2.2(API Level 8)中被廢棄。
對於判斷裝置在全球參照系中的物理位置,定位感應器是有益的。例如,使用地磁場感應器跟加速度感應器的組合來判斷裝置相對於磁場北極的位置。也能夠使用方向感應器(或類似於基於感應器的方位方法)來判斷裝置在你的應用程式的參照系統中的位置。通常,定位感應器不用於監視裝置的移動或手勢,如震動、傾斜或推動(更多的資訊,請看Motion Sensors)。
地磁場感應器和方向感應器用SensorEvent來返回感應器值的多維陣列。例如,在一個單獨的感應器事件期間,方向感應器的三個座標中每一個都提供了地磁場的強度值。同樣,方向感應器在一個感應器事件期間提供了方位角(旋角)、傾斜度和晃動值。關於感應器所使用的座標系統的更多資訊,請看“感應器器座標系統”。距離感應器在每個感應器事件中提供一個單值。表1概要的介紹了Android平台所支援的定位感應器。
表1.Android平台所支援的定位感應器
感應器 |
感應器事件數目據 |
描述 |
測量的單位 |
TYPE_MAGNETIC_FIELD
|
SensorEvent.values[0]
|
X軸地磁場強度 |
μT |
SensorEvent.values[1]
|
Y軸地磁場強度 |
SensorEvent.values[2]
|
Z軸地磁場強度 |
TYPE_ORIENTATION 1
|
SensorEvent.values[0]
|
方位角(圍繞Z軸的角度) |
角度 |
SensorEvent.values[1]
|
傾斜度(圍繞X軸的角度) |
SensorEvent.values[2]
|
幅度(圍繞Y軸的角度 |
TYPE_PROXIMITY
|
SensorEvent.values[0]
|
與對象間的距離。2 |
cm(厘米) |
1這種感應器在Android2.2(API Level 8)中被廢棄。感應器架構提供擷取裝置方向的替代方法,在使用方向感應器一節會討論替代的方法。
2某些距離感應器只提供接近和遠離的位元據。