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