Android手機中P-Sensor驅(qū)動開發(fā)調(diào)試及功能介紹
近期由于剛換了新工作,好久沒有更新文章了,現(xiàn)在終于能抽出時間寫點東西了!先拿我們手機上都有的psensor開刀吧。
Psensor功能Proximity Sensor就是接近傳感器,也就是我們常說的PSensor,用于測量物體靠近或遠離手機,一般放置在手機屏幕的最上部位置。當物體接近PSensor時,PSensor的值會越來越大,當大于一定值(接近的門限值)時,就會上報接近事件給android;當物體再離開PSensor時,PSensor的值會越來越小,當小于一定值時(遠離的門限值)時,就會上報遠離事件給android。最后android根據(jù)上報的事件進行對應(yīng)的處理(亮滅屏幕)。
Psensor主要應(yīng)用場景1. 手機鎖屏:手機在鎖屏狀態(tài)下,為了防止在口袋中誤觸,被遮擋的情況下操作手機,會提示誤操作界面。
2. 打電話:打電話時,如果手機靠近耳朵,PSensor檢測到接近手機狀態(tài),關(guān)閉屏幕;當用戶從耳朵旁拿開手機,Psensor則檢測到遠離手機狀態(tài),點亮屏幕。面上主流的智能手機均包含了近距離傳感器,防止用戶近耳接聽時觸碰到屏幕引發(fā)誤操作和降低功耗(LCD功耗還是很高的)。
......
當android手機進入以上場景時,會Enable PSensor,然后控制手機的亮滅屏。
PSensor校準1) 為什么要校準
Proximity Sensor工作時,即使沒有任何物體遮擋時,Proximity Sensor檢測到的raw data(原始數(shù)據(jù))也會大于0,這個值我們稱之為crosstalk(底噪值)。所以,Proximity Sensor要正常工作,設(shè)置接近、遠離觸發(fā)門限時是需要考慮背景噪聲,以消除背景噪聲干擾,這個過程就叫做校準。
2) 如何校準
校準的實質(zhì)就是獲取PSensor的底噪值。
靜態(tài)校準:在生產(chǎn)時進行獲取底噪值并存入手機的NV分區(qū)(SMT校準),使用psensor時,讀取NV分區(qū)中的值,進行設(shè)置接近和遠離的閾值。就是一旦出廠校準完成,高低門限值ps_threshold_low和ps_threshold_high就是固定的。
優(yōu)點:邏輯相對簡單 。
缺點:proximity sensor的底噪是變化的,會隨著手機使用過程變化,如用戶手機跌落導致proximity sensor結(jié)構(gòu)密封性下降,光孔透光性變化,貼鋼化膜等等。所以,使用靜態(tài)校準,存在會導致proximity sensor接近、遠離觸發(fā)靈敏度降低,甚至失效的可能(一打電話就黑屏)。
動態(tài)校準:指proximity sensor工作時的高低門限值ps_threshold_low和ps_threshold_high是動態(tài)的、實時的,每次打開proximity sensor會實時讀取底噪,并基于底噪設(shè)置高低門限值ps_threshold_low和ps_threshold_high。
優(yōu)點:可以規(guī)避固定門限校準的缺點。
缺點:邏輯相對固定門限校準復雜些,早期調(diào)試工作量大些。打開proximity sensor時,如果有物體遮擋proximity sensor光孔,這時獲取的底噪接近最大值,這樣會導致proximity sensor功能失效,不會觸發(fā)接近、遠離事件。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。