Because of a design flaw, dealing with the proximity sensor of the Samsung Galaxy S4 has always been a nightmare. Forcing manually a recalibration worked for a while, but then stop working. The issue is that you get a black screen during calls, preventing you from using the dial pad or other apps while calling, and it lasts for 30 seconds after you hang up.
There are a couple of workarounds posted over the Internet suggesting:
/system/build.propfile to add these lines:
mot.proximity.delay=0 ro.lge.proximity.delay=25 ro.telephony.call_ring.delay=0 ring.delay=0
Except for the solution with compressed air, I tested everything and none of those worked for me. So I decided to completely disable the proximity sensor on calls.
Step 1: installing Xposed framework
Disclaimer: this step requires knowledge on how to flash your device. This can mess up your phone. Use at your own risk.
There’s a module for Xposed Framework that allows you to disable the proximity sensor on calls, but installing the framework is of course a requisite.
It is composed by two different parts. The first one can be easily installed thanks to a downloadable APK. There is one in the official main webpage but it does not work with Lollipop: there is another one in the official XDA Developers thread that is compatible with Android 5.x (more details). Disclaimer 2: note that Xposed framework release for Lollipop is an alpha one. High risk of bugs.
The second one requires flashing. To do so, I have checked what is the latest available version of Xposed at the official thread at XDA Developers compatible with my Galaxy S4, which at the time of this writing is xposed-v66-sdk21-arm.zip, since I’m using UtimaROM‘s 04-19-2015 release, with Android Lollipop.
I have downloaded the and saved the ZIP into the SD card and I’ve rebooted to Recovery using Rom Toolbox Lite, an app available at Google Play.
Inside the Recovery menu, I have chosen “Install from /sdcard” and I have navigated to the Downloads folder to find the ZIP.
Step 2: installing the actual module
After rebooting, there is another APK that should be installed: the module for disabling the proximity sensor itself. Once installed, a notification will be placed in the notification center, warning that the module has been installed but not activated.
By clicking in the notification, a check box allows you to activate the module. Then a final reboot is needed, and after that the phone shouldn’t trigger the black screen during calls anymore.