zoukankan      html  css  js  c++  java
  • 三星S4接电话黑屏无法挂断通话

    最近发现S4的通话距离感应起出了问题,接电话后直接熄屏,按什么按钮都没有反应。通话结束后只能等对方挂断才会恢复正常,再或者长按9秒电源键强制重启。极大的影响了实用体验。网上搜了下,发现这样的问题还不少。都是什么拆机清洁距离感应器了,送修等解决办法,耗时耗力还费钱。于是请教了两位大神,一位在做手机的预装软件开发,一位在做手机系统的二次开发。两位商量了下,猜测可能是距离感应器感应的结果由于各种原因和最初设定不一样了。让我试一下。

    于是:三星输入*#0*#,会出现一大堆测试硬件功能的按钮,第三行中间sensor(传感器的意思),能够看到现在各种传感器的返回值。第二个就是距离感应器的数值了。我的前两个值分别为1.0和61。proximity是临近的意思,猜测是一个布尔值。ADC应该就是距离感应器的返回数值了。网上有数据说,系统初始设置45,我的肯定超了,所以proximity是1 ,系统认为是贴近物品了。得到这个结论,我也是无语了。不过还好有大神,指导我把系统预设阈值调高。问题很轻松的解决了。具体步骤如下:

    步骤1、直接输入adb shell按回车;
    步骤2、再输入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、把手拿开再次输入cat /sys/devices/virtual/sensors/proximity_sensor/state 回车
    返回的数值 可能会出显60或者其他数据,记下数值。
    步骤5、输入cat /sys/devices/virtual/sensors/proximity_sensor/prox_cal 回车
    如出现39,60,44三组数字或其他的数据,记下第一组数39,也就是第一个数。
    步骤6、将步骤4和步骤5记下的数字相加,例如60+39=99,将99转为十六进制数结果为63。十六进制可以在系统自带计算器calc.exe计算出来:
    步骤7、输入echo -en $'x63' > /efs/prox_cal 按回车(x后面是你计算出的十六进制数字)
    继续输入
    chown system:system /efs/prox_cal 回车
    输入chmod 644 /efs/prox_cal 回车
    输入sync 回车
    输入reboot 回车

    若输入“reboot”命令无法重启手机,请手动重启。

    重启完毕以后问题解决。经测试,调整完后,proximity由0->1,ADC在138~140左右。proximity有1->0,ADC在123~125左右。嗯嗯,问题解决!

  • 相关阅读:
    Day4-装饰器
    Day3-递归函数、高阶函数、匿名函数
    Day3-函数及作用域
    Day2-字符编码转换
    Day2-文件操作
    Day2-列表、字符串、字典、集合
    Day1-模块初识
    JavaScript 笔试题
    从JavaScript 数组去重谈性能优化
    prototype
  • 原文地址:https://www.cnblogs.com/suanec/p/4722660.html
Copyright © 2011-2022 走看看