android之傳感器編程.docx_第1頁
android之傳感器編程.docx_第2頁
android之傳感器編程.docx_第3頁
android之傳感器編程.docx_第4頁
android之傳感器編程.docx_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

Android傳感器編程知識點概述:1. 傳感器的概念2. Android中傳感器的種類3. Android中傳感器的功能知識點詳述:1. 傳感器的概念傳感器是一種物理裝置或生物器官,能夠探測、感受外界的信號、物理條件(如光、熱、濕度)或化學組成(如煙霧),并將探知的信息傳遞給其它裝置或器官。同時也可以說傳感器是一種檢測裝置,能感受被測量的信息,并能將檢測的感受到的信息,按一定規(guī)律變換成為電信號或其它所需形式的信息輸出,以滿足信息的傳輸、處理、存儲、顯示、記錄和控制等要求。它是實現(xiàn)自動檢測和自動控制的首要環(huán)節(jié)。根據(jù)工作原理,傳感器可分為物理傳感器和化學傳感器兩大類。物理傳感器應用的是物理效應,諸如離化、極化、熱電、光電、磁電等效應。被測信號量的微小變化都將轉(zhuǎn)換成電信號?;瘜W傳感器包括哪些以化學吸附、電化學反應等現(xiàn)象為因果關系的傳感器。被測信號量的微小變化也將轉(zhuǎn)換成電信號。注:目前大多數(shù)傳感器是以物理原理為基礎運作的。2. Android中傳感器的種類Android操作系統(tǒng)中內(nèi)置了很多傳感器,同時傳感器也成為了手機硬件的重要組成部分。比如在部分游戲或應用軟件中可以自動識別屏幕的橫屏、豎屏方向來改變屏幕顯示布局,這就是因為手機硬件支持了重力感應、方向判斷等功能。在Android中支持下面幾種傳感器:l Sensor.GRAVITY: 重力傳感器l Sensor.TYPE_ACCELEROMETER: 加速度傳感器l Sensor.TYPE_GYROSCOPE: 陀螺儀傳感器l Sensor.TYPE_LIGHT: 亮度(光線)傳感器l Sensor.TYPE_MAGNETIC_FIELD: 地磁傳感器l Sensor.TYPE_ORIENTATION: 方向傳感器l Sensor.TYPE_PRESSURE: 壓力傳感器l Sensor.TYPE_PROXIMITY: 近程傳感器l Sensor.TYPE_TEMPERATURE: 溫度傳感器3. Android中傳感器的功能在Android中使用傳感器,首先需要了解SensorManager和SensorEventListener.SensorManager是所有傳感器的一個綜合管理類,包括了傳感器的種類、采樣率、精準度等。可以通過getSystemService方法來獲取一個SensorManager實例。代碼如下:SensorManager mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);取得SensorManager實例之后,可以通過getSensorList方法來獲得需要的傳感器類型,存到一個傳感器列表中,如下代碼可以得到以下方向傳感器:List sensors = mSensorManager.getSensorList(Sensor.TYPE_ORIENTATION);要與傳感器交互,應用程序中必須注冊相關的傳感器, 當不再用時還要注銷.代碼如下:/注冊傳感器/參數(shù)一表示接收信號的Listener實例/參數(shù)二表示想接收的傳感器類型/參數(shù)三表示接收頻度, SensorManager.SENSOR_DELAY_ FASTEST表示盡可能快地獲得傳感器數(shù)據(jù)Boolean mRegisteredSensor = mSensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_FASTEST);/注銷傳感器mSensorManager.unregisterListener(this);SensorEventListener是使用傳感器的核心,包括以下兩個方法必須實現(xiàn):l onSensorChanged(SensorEvent event)方法在傳感器值更改時調(diào)用.該方法只由受此應用程序監(jiān)視的傳感器調(diào)用.該方法的參數(shù)是一個SensorEvent對象,該對象主要包括一組浮點數(shù),表示傳感器獲得的方向、加速度等信息。如以下代碼可以取得其值:float x = event.valuesSensorManager.DATA_X;float y = event.valuesSensorManager.DATA_Y;float z = event.valuesSensorManager.DATA_Z;注: 其中SensorEvent類的values變量非常重要,該變量的類型是float。但該變量最多只有3個元素,而且根據(jù)傳感器的不同,values變量中元素所代表的含義也不同。在方向傳感器中values變量的3個值都表示度數(shù),它們的含義如下:values0:該值表示方位,也就是手機繞著Z軸旋轉(zhuǎn)的角度。0表示北(North);90表示東(East);180表示南(South);270表示西(West), 可以利用這個特性來實現(xiàn)電子羅盤。values1:該值表示傾斜度,或手機翹起的程度。當手機繞著X軸傾斜時該值發(fā)生變化。values1的取值范圍是-180values1180。假設將手機屏幕朝上水平放在桌子上,這時如果桌子是完全水平的,values1的值應該是0。這時從手機頂部開始抬起,直到將手機沿X軸旋轉(zhuǎn)180度(屏幕向下水平放在桌面上)。在這個旋轉(zhuǎn)過程中,values1會在0到-180之間變化,也就是說,從手機頂部抬起時,values1的值會逐漸變小,直到等于-180。如果從手機底部開始抬起,直到將手機沿X軸旋轉(zhuǎn)180度,這時values1會在0到180之間變化。也就是values1的值會逐漸增大,直到等于180??梢岳胿alues1和下面要介紹的values2來測量桌子等物體的傾斜度。values2:表示手機沿著Y軸的滾動角度。取值范圍是-90values290。假設將手機屏幕朝上水平放在桌面上,這時如果桌面是平的,values2的值應為0。將手機左側逐漸抬起時,values2的值逐漸變小,直到手機垂直于桌面放置,這時values2的值是-90。將手機右側逐漸抬起時,values2的值逐漸增大,直到手機垂直于桌面放置,這時values2的值

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論