Android Sensors (6) 位置傳感器 Position Sensors


 

位置傳感器Position Sensors

  

  Android平台提供了兩種決定設備位置的傳感器:

  地磁場傳感器方向傳感器(the geomagnetic field sensor and the orientation sensor)。

  還有一種傳感器用於檢測設備正面和其他物體的距離,叫做接近傳感器(proximity sensor)。

  地磁場傳感器和接近傳感器是基於硬件的。

  方向傳感器是基於軟件的,它的數據是根據加速度計和地磁場傳感器導出的。

  但是方向傳感器自從Android 2.2 (API Level 8)開始就被廢棄了。

  位置傳感器也是返回一個多維向量,放在 SensorEvent中的values數組中。

  返回值見表:

 

方向傳感器Orientation Sensor

  方向傳感器是根據地磁場傳感器加速度計推導出輸出數據的。

  使用這兩個硬件傳感器,方向傳感器為下面三個方向提供了數據:

  1. Azimuth:繞Z軸旋轉的度數。這是設備的y軸和地磁場北極的夾角。比如,設備的y軸指向東,這個度數就為90。

  2. Pitch:繞X軸旋轉的度數。當設備的z軸朝着y軸正向旋轉時,這個值是正值,反之,當設備的z軸朝着y軸的負向旋轉時,這個值為負值。它的取值范圍是-180到180。

  3. Roll:繞Y軸旋轉的度數。當設備的z軸朝着x軸正向旋轉時,這個值是正值,反之,當設備的z軸朝着x軸的負向旋轉時,這個值為負值。它的取值范圍是-90到90。

 

  注意這個定義是非常特殊的,因為它在順時針旋轉的時候是正值,而數學上總是逆時針為正值。

  因為方向傳感器需要大量的處理運算,所以它的准確度和精度都有所下降。后來,自Android 2.2 (API level 8),方向傳感器被廢棄。

  官方建議使用下面的方法:

  利用getRotationMatrix()結合getOrientation()方法可以計算方向值。

  還可以利用remapCoordinateSystem()把方向值轉換到你的應用的參考坐標系。

 

地磁場傳感器Geomagnetic Field Sensor

  地磁場傳感器監測地球地磁場變化。

  傳感器提供三個坐標上的原始的磁場強度值(in μT)。

  一般情況下,你不需要直接使用這個傳感器,你可以使用旋轉向量傳感器來決定原始的旋轉運動;你也可以使用加速度計和地磁場傳感器並結合getRotationMatrix()方法來獲得旋轉矩陣和傾斜矩陣。

  你可以結合 getOrientation()和 getInclination() 方法來使用這些矩陣,從而得到方位和地磁場偏移數據。

 

接近傳感器Proximity Sensor

  接近傳感器可以讓你得到設備離另一個物體的距離。

  接近傳感器通常用於檢測設備正面和用戶頭部的距離,比如用戶正在打電話。

  大多數Proximity Sensor返回絕對的距離數值,以cm為單位。但是也有一些只返回近或者遠。

 

參考資料

  API Guides: Position Sensors

  http://developer.android.com/guide/topics/sensors/sensors_position.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM