Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android傳感器---Motion Sensor(一)

Android傳感器---Motion Sensor(一)

編輯:關於Android編程

Android平台提供了幾個能夠監視設備移動的傳感器。其中的兩個是基於硬件的(加速度傳感器和陀螺儀),有三個傳感器既可以是基於硬件的,也可以是基於軟件的(重力傳感器、線性加速度傳感器和旋轉矢量傳感器)。例如,在某些基於軟件傳感器的設備上會從加速度傳感器和磁力儀中提取它們的數據,但是在其他的設備上,它們也可以使用陀螺儀來提取數據。大多數Android設備都有加速度傳感器和陀螺儀。基於軟件的傳感器的有效性是可變的,因為它們要依賴一個或多個硬件傳感器來提取對應的數據。

運動傳感器用於監視設備的移動,如:傾斜、振動、旋轉或擺動。移動通常是直接的用戶輸入的反映(如,用戶在游戲中操作汽車或控制一個球),但也能夠是設備所處的物理環境的反映(如,駕駛汽車時的位置移動)。在第一種場景中,你要相對於設備的參照系或應用程序的參照系來監視設備的移動,在第二種場景中,你要相對於全球參照系來監視設備的移動。

通常,移動傳感器本身並不用於監視設備的位置,但它們能夠跟其他傳感器一起來使用,例如跟地磁傳感器一起來判斷設備相對於全球參照系統的的位置(更多信息,請看位置傳感器)。

所有的移動傳感器的每個SensorEvent都會返回傳感器值的多維數組。例如,一個加速度傳感器的傳感器事件會返回三個坐標軸方向的加速度力,陀螺儀會返回三個坐標軸方向旋轉速率。這些數據是以float數組的形式跟SensorEvent參數一起被返回的。表1概要介紹了Android平台上可用的移動傳感器。

表1.Android平台所支持的移動傳感器

傳感器
 傳感器數據
 描述
 測量單位
 
TYPE_ACCELEROMETER
 SensorEvent.values[0]
 X軸方向的加速力(包括重力)
 m/s2
 
SensorEvent.values[1]
 Y軸方向的加速力(包括重力)
 
SensorEvent.values[2]
 Z軸方向的加速力(包括重力)
 
TYPE_GRAVITY
 SensorEvent.values[0]
 X軸方向的重力
 m/s2
 
SensorEvent.values[1]
 Y軸方向的重力
 
SensorEvent.values[2]
 Z軸方向的重力
 
TYPE_GYROSCOPE
 SensorEvent.values[0]
 繞著X軸的旋轉率
 rad/s
 
SensorEvent.values[1]
 繞著Y軸的旋轉率
 
SensorEvent.values[2]
 繞著Z軸的旋轉率
 
TYPE_LINEAR_ACCELERATION
 SensorEvent.values[0]
 X軸方向的加速力(不含重力
 m/s2
 
SensorEvent.values[1]
 Y軸方向的加速力(不含重力
 
SensorEvent.values[2]
 Z軸方向的加速力(不含重力
 
TYPE_ROTATION_VECTOR
 SensorEvent.values[0]
 沿著X軸的旋轉矢量(x* sin(θ/2)).
 無單位
 
SensorEvent.values[1]
 沿著Y軸的旋轉矢量(y* sin(θ/2)).
 
SensorEvent.values[2]
 沿著Z軸的旋轉矢量(z* sin(θ/2)).
 
SensorEvent.values[3]
 旋轉矢量的標量部分((cos(θ/2)).1
 


1標量部分是一個可選值。

對於移動檢測和監視,旋轉矢量傳感器和重力傳感器是使用頻率最高的傳感器。旋轉矢量傳感器尤其靈活,可廣泛的應用於移動相關的任務,如,檢測手勢、監視角度變化、監視相對的方向變化等。例如:如果你正在開發一款使用2維或3維羅盤來增強現實感游戲,或增強相機的穩定性的應用程序,那麼旋轉矢量傳感器是非常理想的選擇。在大多場景中,使用這些傳感器比使用加速度傳感器和地磁傳感器或方向傳感器要好。

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved