电工技术基础_电工基础知识_电工之家-电工学习网

欢迎来到电工学习网!

三星手机距离感应器失灵设置方法

2017-07-16 22:25分类:家电维修 阅读:

 

三星手机距离感应器失灵设置方法
我的S4(I959)使用了几个月后,距离感应器出现问题,即出现接打电话时,屏幕贴近面部能自动黑屏,但远离面部后却不再自动点亮的情况。后果就是必须要对方先挂机,屏幕才会点亮(我无法先主动挂机),或者就要自己按home键才能再次点亮屏幕选择挂机等。否则就无法确定手机是不是还处在通话中。

上网查询发现S4(含其他机型)出现非常多的同类问题,而自己之前用了3年的I9000都没有这个问题。于是判断应该不会是距离感应器工艺落后造成的质量问题。
针对S4目前网上的解决办法有5种:

1、 使用干净纸巾(手上有油擦不干净)用力擦干净距离感应器上的油污,使其恢复灵敏。
2、 对听筒用力吹气,借此吹掉距离感应器中的灰尘,使其恢复灵敏。
3、 用力按压距离感应器,使距离感应器更贴近屏幕,缩短探测距离,使其更灵敏。
4、 拆机,彻底清理距离感应器中的灰尘,甚至有的人主动刮掉距离感应器的涂层以使其更灵敏。
5、送修,去三星售后或手机修理店更换距离感应器。

这5种方法中:

第1、2种可以短时间,无损伤的解决大部分问题,但是时间一长又开始不好用,而且这两种办法开始变得失效。
第3种方法相对最不靠谱,可能有损手机,不建议大家使用。
第4、5种方法很多人不愿意去尝试,因为需要很强的动手能力或者要花点钱,而且拆机过程中可能损坏手机。并且过一段后可能再次出现同类问题。

那么,有没有一种方法即可以不费力的解决,同时又无伤手机呢?

通过分析,我们可以得知S4出现这么多感应器问题,大多并非质量问题。其实感应器是好的。(检测感应器的好坏方法,拨号界面输入*#0*#,然后在弹出的界面中点击第三排的中间一个“sensor”,进入后,其中的第二项Proximity Sensor 就是距离感应器。你用手遮住距离感应器,如果ADC 变成255,屏幕变绿并开始震动,就说明感应器是好的。移开手,ADC恢复原来数值,例如43,注:此刻屏幕应该变白并停止震动。若移开手后的数值是43以上,例如51,那屏幕就仍然是绿的,且震动不会停止,这也就是我们屏幕不会自动点亮的原因。)

我们知道感应器是通过测量距离、返回数值来命令手机黑屏或点亮的。理论上距离感应器测量返回的数值是0~255,即毫无遮挡的理想数值是0,全部遮挡返回数值255。此刻我简单的猜测其原理,三星设定了一个临界数值,例如45:

1、 当数值低于45时(0~45),认为屏幕附近没有遮挡,此刻屏幕远离面部,于是屏幕点亮。
2、 当数值高于45时(46~255),认为屏幕附近有遮挡,此刻屏幕靠近面部,于是屏幕熄灭。

在手机使用一段时间后,因为油污,灰尘等原因,使得感应器被污物部分遮挡,于是感应器变得只能测到51~255(假定)的范围。因为51>45,所以屏幕一旦熄灭就再也不会点亮。

此时我们只需提高这个三星设定的临界数值(例如将45改为58),使之处在感应器能测到的范围(51~255)中,即将屏幕点亮的范围扩大,就能简单、无损,彻底的,通过设置参数来解决问题。

当然,数值升高后,所带来的副作用就是熄灭屏幕所需要的距离变得更近,但一般大家打电话基本都会贴在脸上,所以这完全不是个问题。

如何改变这个数值呢?有些手机或系统内有距离感应器校准选项,然而S4中没有。

引用如下:(并作适当注释便于操作)
步骤1:手机端安装超级终端(后附下载链接)或者手机连接adb,并且具有root权限(后附下载链接)

步骤2:打开adb shell ,输入命令:
su回车
echo空格0空格>空格/sys/devices/virtual/sensors/proximity_sensor/prox_cal回车
echo空格1空格>空格/sys/devices/virtual/sensors/proximity_sensor/prox_cal回车


如果没有返回任何错误信息,则继续

步骤3:用手完全遮挡距离传感器
输入
cat空格/sys/devices/virtual/sensors/proximity_sensor/state一只手完全遮挡距离传感器,一只手回车
返回 255或其他数,无所谓

步骤4:把手拿开再次输入上面命令
返回51(我的是23),也可能是其他数据,只要小于上次数据就ok,记下这个数

步骤5:输入
cat空格/sys/devices/virtual/sensors/proximity_sensor/prox_cal回车
返回0,60,44三组数字,记下0,也就是第一组(我返回的第一组居然是45,可见感应器的问题)

步骤6:将步骤4和步骤5记下的数字相加,51+0=51(我的是23+45=68),将51(我的是68)转为16进制数结果为33(我转换为44),如果你觉得51不靠谱也可以适当增大,我取的是55,十六进制就是37(我最终取的是47)。

步骤7:输入
echo空格-en空格$'\x37'空格>空格/efs/prox_cal回车
\x后面是你计算出的十六进制数字(我最终取的是47),注意en前面有一个“-”
继续输入
chown空格system:system空格/efs/prox_cal回车
chmod空格644空格/efs/prox_cal回车
sync回车
reboot回车
等待重启完成,再试试距离传感器,是不是好了~~~~~


通过方法,我的手机距离感应器终于功能正常,从此再也不用鼓起腮帮子吹气或用纸巾拼命擦拭,然后还得看手机脸色行事了。

上一篇:tb1307fg引脚图及功能

下一篇:更换冰箱毛细管长度计算方法

相关推荐

电工推荐

    电工技术基础_电工基础知识_电工之家-电工学习网
返回顶部