Android手机中P-Sensor驱动开发调试及功能介绍
近期由于刚换了新工作,好久没有更新文章了,现在终于能抽出时间写点东西了!先拿我们手机上都有的psensor开刀吧。
Psensor功能Proximity Sensor就是接近传感器,也就是我们常说的PSensor,用于测量物体靠近或远离手机,一般放置在手机屏幕的最上部位置。当物体接近PSensor时,PSensor的值会越来越大,当大于一定值(接近的门限值)时,就会上报接近事件给android;当物体再离开PSensor时,PSensor的值会越来越小,当小于一定值时(远离的门限值)时,就会上报远离事件给android。最后android根据上报的事件进行对应的处理(亮灭屏幕)。
Psensor主要应用场景1. 手机锁屏:手机在锁屏状态下,为了防止在口袋中误触,被遮挡的情况下操作手机,会提示误操作界面。
2. 打电话:打电话时,如果手机靠近耳朵,PSensor检测到接近手机状态,关闭屏幕;当用户从耳朵旁拿开手机,Psensor则检测到远离手机状态,点亮屏幕。面上主流的智能手机均包含了近距离传感器,防止用户近耳接听时触碰到屏幕引发误操作和降低功耗(LCD功耗还是很高的)。
......
当android手机进入以上场景时,会Enable PSensor,然后控制手机的亮灭屏。
PSensor校准1) 为什么要校准
Proximity Sensor工作时,即使没有任何物体遮挡时,Proximity Sensor检测到的raw data(原始数据)也会大于0,这个值我们称之为crosstalk(底噪值)。所以,Proximity Sensor要正常工作,设置接近、远离触发门限时是需要考虑背景噪声,以消除背景噪声干扰,这个过程就叫做校准。
2) 如何校准
校准的实质就是获取PSensor的底噪值。
静态校准:在生产时进行获取底噪值并存入手机的NV分区(SMT校准),使用psensor时,读取NV分区中的值,进行设置接近和远离的阈值。就是一旦出厂校准完成,高低门限值ps_threshold_low和ps_threshold_high就是固定的。
优点:逻辑相对简单 。
缺点:proximity sensor的底噪是变化的,会随着手机使用过程变化,如用户手机跌落导致proximity sensor结构密封性下降,光孔透光性变化,贴钢化膜等等。所以,使用静态校准,存在会导致proximity sensor接近、远离触发灵敏度降低,甚至失效的可能(一打电话就黑屏)。
动态校准:指proximity sensor工作时的高低门限值ps_threshold_low和ps_threshold_high是动态的、实时的,每次打开proximity sensor会实时读取底噪,并基于底噪设置高低门限值ps_threshold_low和ps_threshold_high。
优点:可以规避固定门限校准的缺点。
缺点:逻辑相对固定门限校准复杂些,早期调试工作量大些。打开proximity sensor时,如果有物体遮挡proximity sensor光孔,这时获取的底噪接近最大值,这样会导致proximity sensor功能失效,不会触发接近、远离事件。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。