Tutorial: Really enable/disable Wifi Calling to Save Your Battery

Search This thread

lotherius

Inactive Recognized Developer
Jan 12, 2009
2,178
612
Houston, TX
Google Pixel 6
You may have noticed, especially if you've got the new Free Wifi Calling feature from T-Mobile, that WiFi Calling is a BATTERY HOG. Worse, it hogs battery even when disabled. You can verify it's Hogginess even when disabled by noting it will almost always be the top APP in history using SystemPanel. It's incredibly badly coded, and if you've got a Rom with Wifi Calling on it, and you've had bad battery life, now you know WHY.

But, really, with the new Free Wifi Calling feature, we shouldn't have to kill it entirely.

You can freeze it with Titanium Backup, but that's a hassle. Likewise using Bloater to uninstall/reinstall it all the time. Wouldn't it be nice just to have a desktop widget to do it for you? Or be able to hook it into your "Home Wifi" profile, so it's always enabled at home, and then have it turned off as soon as you're no longer near your home wifi?

Thanks to user AntonX in this thread , I came across a method to simply kill the app at the system level until needed. Still not convenient. So, I whipped up some Tasker scripts which will help the situation.

This assumes you have Tasker, as well as a basic knowledge of how to use it. Here are your the TASKS to create (Don't create any profiles unless you want to)

You also need to have the Locale Execute plugin, which is free.

NOTE: For this to work correctly, leave the slider set to ENABLE in the wifi calling app, and disable the feature using the Tasker widget and not inside the app!

Create a Task "Disable Wifi Calling"
1. Variable Set %WIFIWASON to YES If %WIFI ~ on
2. Wifi Set Off
3. Wait 5 Seconds If %WIFIWASON ~ YES
4. Execute @!pm disable com.android.kineto
5. Wifi Set On If %WIFIWASON ~YES
6. Variable Clear %WIFIWASON
7. Variable Clear %WIFICALLING

Create a Task: "Enable Wifi Calling"
1. WiFi Set On
2. Plugin:Execute @!pm enable com.android.kineto
3. Wait 5 Seconds
4. Load App Wifi Calling
5. Variable Set %WIFICALLING to YES


Create a Task "Toggle Wifi Calling"
1. Perform Task Disable WIFI Calling If %WIFICALLING ~ YES
2. Perform Task Enable WIFI Calling If %WIFICALLING |~ YES


TO USE:
Add a Tasker Widget to your homescreen for the "Toggle Wifi Calling" task.

What is going on:
Disable script will check if wifi is on at the time it is executed. It has to turn Wifi OFF so we get a clean disconnect from the network and the taskbar Icon goes away before killing the Wifi Calling app. If Wifi was on beforehand, it turns it back on.

Enable script will make sure wifi is enabled, and give it time to connect, and then load the application since sometimes it won't activate on its own without loading manually.

These tasks are intended to be linked to Tasker widgets on your homescreen, but you can call them from location based profiles or whatever.

Now, when Wifi Calling is OFF, it is REALLY off, and not just sitting around, unused, sucking up your battery. With a little more work, this could probably be turned into a single "Toggle" task, but that's an exercise for someone who has slept and doesn't have work in 5 hours. Comments/Improvements welcome.
 
Last edited:

lotherius

Inactive Recognized Developer
Jan 12, 2009
2,178
612
Houston, TX
Google Pixel 6
Update 1:
Added instructions for creating a Toggle widget at the same time.
Streamlined Tasks.

Planned Features:
1. Automatically disable WIFI calling app once WIFI has been disconnected to save battery. Seems to need a block to prevent the state from triggering during processing of the disable/enable tasks, as it breaks functionality. I'm sure it is trivial but I have a limited attention span.

2. Automatically enable WIFI calling app if currently connected to WIFI *and* cell has no signal for longer than a set time. (%CELLSIG)

3. [not possible?] - Audible warning that WIFI signal is getting low and you are currently on a call. Is there any way to read current WIFI signal strength with Tasker?
 
Last edited:
  • Like
Reactions: ripsta7s

younix258

Senior Member
Feb 18, 2011
952
80
Very good guide and a great idea.. if only we could get a better coded wifi calling app... or one for cm7 ;)

Sent from a cell tower to the XDA server to you.
 

GordoMan

Member
Dec 14, 2007
11
0
Pleasant Grove, UT
I love the idea, but I can't quite seem to get it working. When I run the "disable" task, it eventually turns WiFi back on and WiFi calling gets re-enabled.

Then, a while later I get an "app not responding" warning from the Android system for the execute locale plugin (I can select Force Close or Wait).

Also, what is the best way to grant SU permissions to the plugin in the SU application? I have never been prompted to allow it. To test it out, I just temporarily granted access to everything...

Thanks!
 

GFam4

Senior Member
Mar 20, 2010
100
5
lotherius,
I follow on the G2X forums. And you know how the G2x & MIUI Roms can't seem to get Wifi Calling to work consistently. I noticed that if I can get the Wifi Calling app to stay turned OFF it allowed my Sim card to not get the "Invalid Sim" error and then I was able to get wifi calling to work again even after reboots. Do you think by any chance that this script could help cure our Wifi Calling issue with MIUI Roms??? And is there a way to make a flashable zip of this for us Noobs? Thanks Again.
 

lotherius

Inactive Recognized Developer
Jan 12, 2009
2,178
612
Houston, TX
Google Pixel 6
lotherius,
I follow on the G2X forums. And you know how the G2x & MIUI Roms can't seem to get Wifi Calling to work consistently. I noticed that if I can get the Wifi Calling app to stay turned OFF it allowed my Sim card to not get the "Invalid Sim" error and then I was able to get wifi calling to work again even after reboots. Do you think by any chance that this script could help cure our Wifi Calling issue with MIUI Roms??? And is there a way to make a flashable zip of this for us Noobs? Thanks Again.

Nope, this script wouldn't help with that. The problem on MIUI roms on the G2X is due to the operator (T-Mobile for most) not sending the phone # directly to the SIM card when it is activated. Some SIM cards have it, typically older ones, so it works. Those without, however, find that it doesn't work.

Supposedly you can manually program the SIM by using a phone that supports doing so, but I haven't checked to see if that would fix the problem.

Also I no longer bother with this on the G2X as it appears that while wifi calling still uses *some* battery when not active, it's not the battery hog it was back on the Vibrant.
 

lotherius

Inactive Recognized Developer
Jan 12, 2009
2,178
612
Houston, TX
Google Pixel 6
Lotherius,
I had an HD2 running MIUI with Wifi Calling working before the G2X. The is the hack/mod that this guy TyTung did to get wifi calling to work for the HD2. http://forum.xda-developers.com/showthread.php?t=1038784 You think something like this can be used for the G2X to get wifi calling working?

WiFi Calling is really picky about the network information being accurate. I'm surprised that they got it working on the HD2...

The best fix for it on MIUI on the G2X would depend on fixing MIUI itself, since the RIL is correct -- the G2X doesn't allow you to change the RIL so it isn't affected. In the case of MIUI, older SIM cards typically work better than new ones.

The issue comes down to the ability to read the network information from the SIM card. If that data has been programmed to your SIM card, then it might work. If it has not been programmed to your SIM card, then it won't work.

So basically... not saying it's impossible to get it working on G2X/MIUI, but it is more likely to require a fix to MIUI rather than to Wifi Calling.
 

GFam4

Senior Member
Mar 20, 2010
100
5
WiFi Calling is really picky about the network information being accurate. I'm surprised that they got it working on the HD2...

The best fix for it on MIUI on the G2X would depend on fixing MIUI itself, since the RIL is correct -- the G2X doesn't allow you to change the RIL so it isn't affected. In the case of MIUI, older SIM cards typically work better than new ones.

The issue comes down to the ability to read the network information from the SIM card. If that data has been programmed to your SIM card, then it might work. If it has not been programmed to your SIM card, then it won't work.

So basically... not saying it's impossible to get it working on G2X/MIUI, but it is more likely to require a fix to MIUI rather than to Wifi Calling.

I wish i knew what Lib's and RIL's that I can swap from a CM7 Rom (Weapon G2X, Eaglesblood, or TSUGI) and push it via Root Explorer. I did this on my Hd2 and had wifi calling working. Can't this method work to get wifi calling working on G2X. Sorry I know this is off topic. But I even had Wifi Calling on your TSUGI ROM. You wouldn't happen to know what Lib's & Ril's on your TSUGI Rom are responsible for Wifi Calling to be enabled?
 

captainreynolds

Senior Member
Mar 7, 2011
647
85
Is battery life really bad with wifi calling for you guys? I use it nearly 24/7 on my phone, and get fantastic battery life. Like way better than I did without it.

Of course, I'm on the clearly superior HTC G2, but still :)
 

elmerohueso

Senior Member
Nov 29, 2010
568
224
Provo
I've been toying with this, but anytime I force Wifi calling to disable (by killing the app or disabling kineto), restarting Wifi calling says I'm not registered with the T-Mobile network (sure) and won't connect (even after clicking Register) until I reboot the phone.
Any tips?
 

Top Liked Posts

  • There are no posts matching your filters.
  • 2
    You may have noticed, especially if you've got the new Free Wifi Calling feature from T-Mobile, that WiFi Calling is a BATTERY HOG. Worse, it hogs battery even when disabled. You can verify it's Hogginess even when disabled by noting it will almost always be the top APP in history using SystemPanel. It's incredibly badly coded, and if you've got a Rom with Wifi Calling on it, and you've had bad battery life, now you know WHY.

    But, really, with the new Free Wifi Calling feature, we shouldn't have to kill it entirely.

    You can freeze it with Titanium Backup, but that's a hassle. Likewise using Bloater to uninstall/reinstall it all the time. Wouldn't it be nice just to have a desktop widget to do it for you? Or be able to hook it into your "Home Wifi" profile, so it's always enabled at home, and then have it turned off as soon as you're no longer near your home wifi?

    Thanks to user AntonX in this thread , I came across a method to simply kill the app at the system level until needed. Still not convenient. So, I whipped up some Tasker scripts which will help the situation.

    This assumes you have Tasker, as well as a basic knowledge of how to use it. Here are your the TASKS to create (Don't create any profiles unless you want to)

    You also need to have the Locale Execute plugin, which is free.

    NOTE: For this to work correctly, leave the slider set to ENABLE in the wifi calling app, and disable the feature using the Tasker widget and not inside the app!

    Create a Task "Disable Wifi Calling"
    1. Variable Set %WIFIWASON to YES If %WIFI ~ on
    2. Wifi Set Off
    3. Wait 5 Seconds If %WIFIWASON ~ YES
    4. Execute @!pm disable com.android.kineto
    5. Wifi Set On If %WIFIWASON ~YES
    6. Variable Clear %WIFIWASON
    7. Variable Clear %WIFICALLING

    Create a Task: "Enable Wifi Calling"
    1. WiFi Set On
    2. Plugin:Execute @!pm enable com.android.kineto
    3. Wait 5 Seconds
    4. Load App Wifi Calling
    5. Variable Set %WIFICALLING to YES


    Create a Task "Toggle Wifi Calling"
    1. Perform Task Disable WIFI Calling If %WIFICALLING ~ YES
    2. Perform Task Enable WIFI Calling If %WIFICALLING |~ YES


    TO USE:
    Add a Tasker Widget to your homescreen for the "Toggle Wifi Calling" task.

    What is going on:
    Disable script will check if wifi is on at the time it is executed. It has to turn Wifi OFF so we get a clean disconnect from the network and the taskbar Icon goes away before killing the Wifi Calling app. If Wifi was on beforehand, it turns it back on.

    Enable script will make sure wifi is enabled, and give it time to connect, and then load the application since sometimes it won't activate on its own without loading manually.

    These tasks are intended to be linked to Tasker widgets on your homescreen, but you can call them from location based profiles or whatever.

    Now, when Wifi Calling is OFF, it is REALLY off, and not just sitting around, unused, sucking up your battery. With a little more work, this could probably be turned into a single "Toggle" task, but that's an exercise for someone who has slept and doesn't have work in 5 hours. Comments/Improvements welcome.
    1
    Update 1:
    Added instructions for creating a Toggle widget at the same time.
    Streamlined Tasks.

    Planned Features:
    1. Automatically disable WIFI calling app once WIFI has been disconnected to save battery. Seems to need a block to prevent the state from triggering during processing of the disable/enable tasks, as it breaks functionality. I'm sure it is trivial but I have a limited attention span.

    2. Automatically enable WIFI calling app if currently connected to WIFI *and* cell has no signal for longer than a set time. (%CELLSIG)

    3. [not possible?] - Audible warning that WIFI signal is getting low and you are currently on a call. Is there any way to read current WIFI signal strength with Tasker?