android sensors分析_第1頁
已閱讀1頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1第4章roidSenssHAL層分析層分析4.1Sens簡要介紹簡要介紹Sens是很常見的重要器件,比如在生活常見到的聲控開關,電子溫度計等。手機與平板領域已經廣泛使用sens,大家在使用這些設備的時候也許沒有意識到sens的存在,但確實已經和sens打交道了。roid1.5開始為開發(fā)人員提供了關于sens的API,這樣開發(fā)人員可以開發(fā)出更加優(yōu)秀的應用程序。4.1.1roidSenss種類種類在roid系統(tǒng)里sens的種類比較多。在最

2、新的roid的4.0里支持的sens種類多達13種,其中有兩種是roid4.0新增,下面會有介紹。具體類型如表41表41IDSens類型說明1SENS_TYPE_ACCELEROMETER加速度傳感器加速度傳感器又叫Gsens,返回x、y、z三軸的加速度數值。該數值包含地心引力的影響,單位是ms^2。2SENS_TYPE_MAGIC_FIELD磁力傳感器磁力傳感器簡稱為Msens,返回x、y、z三軸的環(huán)境磁場數據。該數值的單位是微特斯拉

3、(microTesla),用uT表示。硬件上一般沒有獨立的磁力傳感器,磁力數據由電子羅盤傳感器提供(Ecompass)。3SENS_TYPE_IENTATION方向傳感器方向傳感器簡稱為Osens,返回三軸的角度數據,方向數據的單位是角度。為了得到精確的角度數據,Ecompass需要獲取Gsens的數據,經過計算生產Osens數據,否則只能獲取水平方向的角度。方向傳感器提供三個數據,分別為azimuth、pitch和roll。4SENS

4、_TYPE_GYROSCOPE陀螺儀陀螺儀傳感器叫做Gyrosens,返回x、y、z三軸的角速度數據。角速度的單位是radianssecond。5SENS_TYPE_LIGHT光線傳感器光線感應傳感器檢測實時的光線強度,光強單位是lux,其物理意義是照射到單位面積上的光通量。光線感應傳感器主要用于roid系統(tǒng)的LCD自動亮度功能??梢愿鶕蓸拥降墓鈴姅抵祵崟r調整LCD的亮度。6SENS_TYPE_PRESSURE壓力傳感器壓力傳感器返回

5、當前的壓強,單位是百帕斯卡hectopal(hPa)。3果是通過JNI調用非java層次的邏輯,這里會特別指出來。4.2.1Sens相應文件介紹相應文件介紹4.2.2Sens注冊事件監(jiān)聽及采樣頻率注冊事件監(jiān)聽及采樣頻率Sens方面的應用程序比較簡單,只要實現一個listener的類,實現其中的方法,然后利用SensManager將其某個具體的Sens注冊到服務中,之后的主要工作就是對獲得傳感器數據進行處理了。下面會對應用程序如何注冊se

6、ns事件監(jiān)聽器以及如何設置采樣頻率進行分析。下面這段程序是應用程序注冊sens事件監(jiān)聽器的語句。SensManagermySensManager=(SensManager)getSystemService(SENS_SERVICE)mySensManager.registerListener(mySensListenermySensManager.getDefaultSens(SensManager.SENS_ACCELEROMETER

7、)SensManager.SENS_DELAY_GAME)應用程序是如何確定系統(tǒng)中存在哪些可以使用的sens呢?仔細分析注冊sens事件監(jiān)聽器的語句可以發(fā)現在注冊事件監(jiān)聽器時調用了SensManager的getDefaultSens()方法,那這一定和SensManager有關系了。分析SensManager之前先看一下它的構造函數。SensManager的構造函數中主要代碼senss_module_init()finalArrayLI

8、stfullList=sFullSenssLIstinti=0doSenssens=newSens()i=senss_module_get_next_sens(sensi)if(i=0)sens.setLegacyType(getLegacySensType(sens.getType()))fullList.add(sens)sHleToSens.append(sens.getHle()sens)while(i0)sPool=newSe

9、nsEventPool(sFullSenssList.Size()2)sSensThread=newSensThread()構造函數中的while循環(huán)調用senss_module_get_next_sens()函數,這個函數會通過JNI讀取設備中具體有哪些sens并初始化sFullSenssListArrayList。這個JNI函數里還是要仔細分析一下。constSensOffsetsjstringname=envNewStringUT

溫馨提示

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

評論

0/150

提交評論