在通话期间禁用接近传感器

时间:2014-07-27 15:44:02

标签: android telephony telephonymanager proximitysensor android-dialer

我放下手机,看起来我的接近传感器不再可靠。它一直返回 Near 。问题是,在通话期间显示屏关闭,我将无法使用数字键盘输入别针或会议另一个电话,甚至断开呼叫。我在辅助功能设置中找到了电源按钮断开连接选项,现在就使用它。

我尝试创建一个应用程序,试图在收到呼叫时获取完整的唤醒锁,希望它能保持显示。

  • 创建一个广播接收器,当手机状态变为OFFHOOK时调用服务

  • 该服务获得一个完整的唤醒锁,只有在手机状态为空闲时才会释放它。

但是,接近传感器会关闭显示屏。我使用isHeld()方法来确保获取锁。我使用了PowerManager的isScreenOn()方法,即使在通话期间屏幕关闭时它也返回true。我试图在一个循环中每两秒获取一次唤醒锁以进行测试,但显示器仍然不会出现。

我正在使用Nexus 5 Android版本4.4.4

有人可以建议改写接近传感器的行为吗?根要求的选项也没关系。

谢谢!

9 个答案:

答案 0 :(得分:6)

我找到了解决方案here。 基本上使用名为Proximity Screen Off Lite的应用 并将其设置如下:

  1. 屏幕开/关模式 选中“盖住并按住以打开屏幕” 超时:1秒 选中“禁用Accidentla Lock” 超时:4秒

  2. 所有设置 选中“在Lanscape中禁用” 选中“在屏幕上锁定手机”

  3. [高级]配置Sensore 选择传感器:接近传感器 覆盖传感器时的值:0 传感器未被覆盖时的值:1

答案 1 :(得分:6)

我也遇到了接近传感器的问题(我在Nexus 6,Android Marshmallow上的那个区域破了屏幕),当我试图禁用接近传感器时,没有提议的解决方案/第三方应用程序工作。对我有用的是使用Proximity Sensor Reset/Repair 校准传感器。您必须按照应用程序中的说明(盖住传感器并将其揭开),然后重新启动手机。虽然我的传感器不再位于玻璃后面,但是当覆盖/未覆盖时仍会显示略微不同的结果,并且重新校准完成了工作。

我尝试过但没有工作? Proximity Screen Off Lite,Macrodroid和KinScreen。

如果它仍然没有用,我会尝试什么?[XPOSED] Sensor Disabler,但它需要你扎根并拥有Xposed Framework,所以我很高兴我找到了更简单的方法。

答案 2 :(得分:3)

我已经研究了一段时间,测试并编写了应用程序。

如果Settings → Phone → Use proximity sensor中没有选项,那么唯一的选择似乎就是在root设备中禁用或修改其设置。

另外请注意,如果您插入耳机,屏幕将保持打开状态:D

答案 3 :(得分:3)

尝试了一大堆修复措施,包括:

  • 手机应用程序的菜单选项(我的手机没有禁用选项)
  • Proximity Screen Off Lite(无效)
  • 带有传感器禁用器的Xposed Framework(直到手机重启为止) 或应用更新)
  • Macrodroid宏(Macrodroid不能在我的手机上运行一些 原因)
  • 在它前面放了一些锡纸?(我不知道我在想什么)

以下是我的修复: 我想你不能打破它,所以我打开手机,从主板上一起取下接近传感器。传感器测试器应用程序现在显示“ no_value ”,用于提供“ Distance:0 ”,拨号后我的屏幕不再变黑。请注意我只能在使用CM MOD 5.1.1的三星I8190 Galaxy S III mini上进行确认。这是我删除的设备的图片: prox sensor 我已经使用SMD焊台的400度热风枪,一些镊子和助焊剂将它移除了。但是一把锋利的爱好刀也可能起作用。

答案 4 :(得分:2)

接近传感器 拨打

*#*#7378423#*#*

1)服务测试 - (如果存在)

2)接近开关

3)对传感器进行测试(移动设备徽标(顶部)旁边)

4)是的,如果有效,那么你可以永远保持和接近开关,一直发出嘟嘟声并消耗大量电池

OR

4)不,它不起作用 - 然后只需清洁移动屏幕或屏幕保护,并清除传感器上被阻挡的屏幕。它很有魅力。

从技术上讲, 它不是任何软件解决方案,但硬件解决方案将起作用。

答案 5 :(得分:1)

在文件夹/系统中编辑build.prop如果存在以下行,则更改该值,如果不存在则添加此行并保存。(设备必须为root)

ro.lge.proximity.delay=25
mot.proximity.delay=25  

答案 6 :(得分:1)

不幸的是,我的接近传感器也不起作用(总是返回0.0厘米)。我找到了方法,但不容易:你需要root手机,安装XPOSED框架和Sensor Disabler(https://play.google.com/store/apps/details?id=com.mrchandler.disableprox)。您可以在应用程序中模拟接近传感器返回值。 (例如总是返回2.0厘米)。然后,您的显示屏将在通话期间始终显示。

答案 7 :(得分:1)

如果您拥有LineageOS 7.1.2(并拥有root用户),请尝试使用XDA中的this解决方案。

在尝试了这里提出的所有解决方案之后,没有一个适用于我的Nexus 4(mako),我在XDA上发现了一个解决Android拨号器问题的问题(但不能解决其他应用程序问题)。基本上我下载了Dialer.apk文件的重新编译版本,该文件只是忽略了接近传感器,其行为方式与股票拨号器应用程序相同。

将/system/priv-app/Dialer/Dialer.apk重命名为某个内容,然后将下载的文件放到该文件夹​​中。重启后,我不得不手动安装新的拨号器(只需点击它)。所以现在原来的应用程序被替换了,调用应该由这个新的处理。

[下行方式:接听电话的新方法是拉下状态栏并点击“接听”(或“关闭”),通常的滑块丢失。此外,每次Android更新到新版本时,您都需要重复此操作。]

答案 8 :(得分:0)

来自互连网的更多答案:进一步“固定”传感器(将屏幕粘回on,或者用酒精清洗,或者用通过耳机插孔传送的空气吹掉它,敲击它,清洗屏幕等)。

在“电话”应用程序中调整(经过一些查找)设置以禁用接近传感器的使用。我找不到这样的设置。 Proximity Screen Off Lite也不起作用,macrodroid也不起作用。

另一个选择:为手机打上根并删除some files

From root explorer or similar program delete these folders and file
/data/system/sensors
/data/misc/sensors
/persist/sensors/sns.reg

或者,如果您真的很绝望,我想一个完全不同的拨号器系统,例如TextNow或google hangouts拨号器:|