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.
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: