《Android程序設計教程》課件第十一章 Android傳感器應用開發(fā)_第1頁
《Android程序設計教程》課件第十一章 Android傳感器應用開發(fā)_第2頁
《Android程序設計教程》課件第十一章 Android傳感器應用開發(fā)_第3頁
《Android程序設計教程》課件第十一章 Android傳感器應用開發(fā)_第4頁
《Android程序設計教程》課件第十一章 Android傳感器應用開發(fā)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第十一章Android傳感器應用開發(fā)目錄11.1傳感器簡介 11.1.1傳感器的檢測 11.1.2使用傳感器的步驟 11.2光線傳感器 11.3加速度傳感器 11.4陀螺儀傳感器 11.5磁場傳感器 學習目標掌握傳感器使用的基本步驟掌握光線傳感器的使用掌握加速度傳感器的使用掌握陀螺儀傳感器的使用掌握磁場傳感器的使用11.1.1傳感器的檢測AndroidSDK中定義了十多種傳感器,但是不是每個手機都完全支持這些傳感器。如果遇到手機不支持的傳感器,程序運行往往不會拋出異常,只是無法獲得傳感器傳回的數據。那么如何知道設備上有哪些傳感器可用呢?有兩種方式:一種是直接方式,一種是間接方式。直接方式首先獲取SensorManger對象,通過上下文對象的getSystemService(SENSOR_SERVICE)方法就可以獲取到系統(tǒng)的傳感器管理服務。然后調用SensorManger對象的getSensorList()方法獲取傳感器集合,遍歷獲取到的集合就能得到傳感器信息。間接方式在AndroidManifest.xml配置文件中,指定該應用程序只支持運行在具有哪些硬件功能的設備上。如果應用程序需要溫度傳感器,可以在配置文件中添加下面一行代碼。<uses-featureandroid:name="android.hardware.sensor.temperature"android:required="true"></uses-feature>11.1.2使用傳感器的步驟(1)調用Context的getSystemService(Context.SENSOR_SERVICE)方法獲取SensorManager對象。(2)調用SensorManager的getDefaultSensor(inttype)方法獲取指定類型的傳感器。(3)在onCreate()生命周期方法中調用SensorManager的registerListener()方法為指定傳感器注冊監(jiān)聽。(4)實例化SensorEventListener接口,作為registerListener()方法的第一個參數。重寫SensorEventListener接口中的onSensorChanged()方法。(5)在onDestroy()生命周期方法中調用SensorManager的unregisterListener()方法釋放資源。SensorManager的registerListener()方法的用法如下:publicbooleanregisterListener(SensorEventListenerlistener,Sensorsensor,intrate)其中:? listener:監(jiān)聽傳感器事件的監(jiān)聽器,該監(jiān)聽器需要實現SensorEventListener接口。? sensor:通過SensorManager的getDefaultSensor(inttype)方法獲取到的傳感器對象。? rate:獲取傳感器數據的頻率。該參數由SensorManager中的幾個常量來定義。(1) intSENSOR_DELAY_FASTEST=0;以最快的速度獲得傳感器數據。只有特別依賴傳感器數據的應用才推薦采用這種頻率,這種模式會造成手機大量耗電。(2) intSENSOR_DELAY_GAME=1;適合游戲的頻率,在一般實時性要求的應用上適用這種頻率。(3) intSENSOR_DELAY_UI=2;

適合普通用戶界面的頻率,這種模式比較省電,系統(tǒng)開銷也小,但是延遲較長。(4) intSENSOR_DELAY_NORMAL=3;11.2光線傳感器光線傳感器的類型常量為Sensor.TYPE_LIGHT(數值為5)。Values數組只有第一個元素values[0]有意義,表示光線的強度。AndroidSDK中將光線強度分為不同等級,每一個等級的最大值由一個常量表示,這些常量定義在SensorManager類中,最大值為120000.0f。11.3加速度傳感器在Android系統(tǒng)中,加速度傳感器的類型常量是Sensor.TYPE_ACCELEROMETER(數值為1),單位為m/s2,能夠測量應用設備在x、y、z軸上的加速度,又叫作G-sensor。在開發(fā)過程中,通過Android的加速度傳感器可以取得x、y、z三個軸的加速度,器值存放在values數組中。values數組的三個元素含義如下:values[0]:沿X軸方向的加速度(手機水平放置,手機橫向左右移動)。values[1]:沿Y軸方向的加速度(手機水平放置,手機前后移動)。values[2]:沿Z軸方向的加速度(手機豎向上下移動)。11.4陀螺儀傳感器陀螺儀傳感器是一個基于自由空間移動和手勢的定位和控制系統(tǒng),已經廣泛運用于手機、平板電腦等移動便攜設備上,在將來的設備也會陸續(xù)使用到。在Android系統(tǒng)中,陀螺儀傳感器的類型是Sensor.TYPE_GYROSCOPE,單位是rad/s,能夠測量設備X、Y、Z三軸的角加速度數據。Android中的陀螺儀傳感器又名為Gyro-sensor角速度器,利用內部振動機械結構偵測物體轉動所產生的角速度,進而計算出物體移動的角度。11.5磁場傳感器在Android系統(tǒng)中,磁場傳感器的類型常量為Sensor.TYPE_MAGNETIC_FIELD(數值為2),單位是uT(微特斯拉),能夠測量設備周圍3個物理軸(X、Y、Z)的磁場。在

溫馨提示

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

評論

0/150

提交評論