最近楼主的note3距离感应器出毛病了,打电话时一拨通就黑屏,脸离开手机手机任然黑屏,不会自动亮起,不用问肯定是距离感应器出了毛病,就百度了一下,结果大吃一惊;很多人的note3都有这毛病;有人说是硬件问题,又人说是因为进灰了,换机的换机,清理灰尘的清理灰尘,用嘴吹的,用吸尘器的,拆机的方法一大堆,但过几天又出问题了,又开始清理灰尘。
楼主是在是很无语,进入工程模式测试 ADC值无遮挡时在150左右,遮挡后1004;说明感应器是好的呀。擦擦屏幕ADC 变成100左右,但大于100系统认为感应器被遮挡。一直是绿色震动状态;只有小于100,才被认为是无遮挡;哎~一晚上没睡好觉想这个事情。ADC最小值0,最大值1004 为啥仅仅变化了十分之一系统就会判定传感器是否被遮挡,这么细微的变化完全有可能是生活环境的误差造成的,比如说进入一点点灰尘或者屏幕脏了,这些都会引起ADC数值以十位数增长,这种细微变化怎么能作为是否被遮挡的判定依据呢?太坑爹了....。这就解释了为什么我们清灰后会恢复正常,但过两天又不行了;难道我们要在无尘的环境中使用手机吗?
三星完全没有把误差值计算进去;所以说这就是软件问题,我们只需要重新校准传感器,把生活中的误差考虑进去就能使距离传感器正常工作,而且进入灰尘也不怕,跟其他山寨机的传感器一样吊~
----------------------------------------------------------------------------------------------------
下面送上Galaxy距离传感器校准方法:
注意: 推荐使用超级终端,因为楼主用的是超级终端,手机需要root
在超级终端上设置启动时启用超级权限。注意命令中的空格,
如果出现 do not follow 那你有可能少了空格,在把这一行重写一遍就行了
---------------------------------------------------------------------------------------------------
步骤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,也可能是其他数据,只要小于上次数据就ok,记下这个数
步骤5:输入
cat /sys/devices/virtual/sensors/proximity_sensor/prox_cal
返回0,60,44三组数字(返回数值每个人都不一样),记下0,也就是第一组
步骤6:将步骤4和步骤5记下的数字相加,51+0=51,将51转为16进制数结果为33,如果你觉得51不靠谱也可以适当增大,我取的是55,十六进制就是37(按照自己的数值去计算,16进制转换器)
步骤7:输入
echo -en $'\x37' > /efs/prox_cal
\x后面是你计算出的十六进制数字
继续输入
chown system:system /efs/prox_cal
chmod 644 /efs/prox_cal
sync
reboot
等待重启完成,再试试距离传感器,是不是好了~~~~~
楼主是在是很无语,进入工程模式测试 ADC值无遮挡时在150左右,遮挡后1004;说明感应器是好的呀。擦擦屏幕ADC 变成100左右,但大于100系统认为感应器被遮挡。一直是绿色震动状态;只有小于100,才被认为是无遮挡;哎~一晚上没睡好觉想这个事情。ADC最小值0,最大值1004 为啥仅仅变化了十分之一系统就会判定传感器是否被遮挡,这么细微的变化完全有可能是生活环境的误差造成的,比如说进入一点点灰尘或者屏幕脏了,这些都会引起ADC数值以十位数增长,这种细微变化怎么能作为是否被遮挡的判定依据呢?太坑爹了....。这就解释了为什么我们清灰后会恢复正常,但过两天又不行了;难道我们要在无尘的环境中使用手机吗?
三星完全没有把误差值计算进去;所以说这就是软件问题,我们只需要重新校准传感器,把生活中的误差考虑进去就能使距离传感器正常工作,而且进入灰尘也不怕,跟其他山寨机的传感器一样吊~
----------------------------------------------------------------------------------------------------
下面送上Galaxy距离传感器校准方法:
注意: 推荐使用超级终端,因为楼主用的是超级终端,手机需要root
在超级终端上设置启动时启用超级权限。注意命令中的空格,
如果出现 do not follow 那你有可能少了空格,在把这一行重写一遍就行了
---------------------------------------------------------------------------------------------------
步骤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,也可能是其他数据,只要小于上次数据就ok,记下这个数
步骤5:输入
cat /sys/devices/virtual/sensors/proximity_sensor/prox_cal
返回0,60,44三组数字(返回数值每个人都不一样),记下0,也就是第一组
步骤6:将步骤4和步骤5记下的数字相加,51+0=51,将51转为16进制数结果为33,如果你觉得51不靠谱也可以适当增大,我取的是55,十六进制就是37(按照自己的数值去计算,16进制转换器)
步骤7:输入
echo -en $'\x37' > /efs/prox_cal
\x后面是你计算出的十六进制数字
继续输入
chown system:system /efs/prox_cal
chmod 644 /efs/prox_cal
sync
reboot
等待重启完成,再试试距离传感器,是不是好了~~~~~