編輯:關於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維羅盤來增強現實感游戲,或增強相機的穩定性的應用程序,那麼旋轉矢量傳感器是非常理想的選擇。在大多場景中,使用這些傳感器比使用加速度傳感器和地磁傳感器或方向傳感器要好。
為了避免看視頻時影響到他人休息,很多用戶會考慮購買無線耳機遠程接收PC的音頻信號。問題是,有多少人會為這種小概率事件去購買無線耳機?如果你身邊有台Andro
點擊打開鏈接 Rabbit and Grass Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 327
類加載流程在周志明寫的<<深入理解java虛擬機的一本書中>>已經詳細地介紹java加載類過程,在HotSpot虛擬機實現中是通過雙親委派機制來加
0.簡介GridView 和 ListView 有共同的父類:AbsListView,因此 GridView 和 ListView 具有一定 的相似性。GridView與