• Post author:
  • Post category:Home Projects
  • Post last modified:May 18, 2021
  • Reading time:7 mins read

I purchased my unlocked Galaxy S20+ for use on the T-Mobile network in late July. While I do love the phone for the most part, as of late there has been an issue where the unlocked Galaxy S20 WiFi Calling Preferences are randomly changed by the system. I have used Android phones for almost a decade, but this is the first Android phone that I haven’t been able to root. I’m still getting used to not having access to some things.

At some point around mid-October, not having access to things via root became a major issue. T-Mobile (or Samsung) pushed a software update that caused major problems with WiFi Calling.

Stop Changing My Unlocked Galaxy S20 WiFi Calling preferences!

When using WiFi Calling, the software gives you the ability to choose which network you want to use more often. You can select WiFi Preferred, or Cellular Preferred. There is a third option (WiFi Only) that is hidden, and not recommended (because it will cause all calls to drop if you lose a WiFi connection).

Here in our home, T-Mobile cell service (while it exists) isn’t that strong. Therefore, we usually keep our Galaxy S20 WiFi Calling preferences set to WiFi Preferred to avoid dropping and missing calls while at home.

The October software update I referred to earlier for some reason causes the phone to keep changing that setting to Cellular Preferred. You might see a notification similar to the following come up on your phone:

wifi calling preferences updated notification screenshot

It is even more annoying that it seems to do this completely randomly.

How Root Access Could Have Helped

For those of us who have a tech background, having root access can sometimes help to resolve issues like these. It gives you access to the core of the phone’s software. This may allow you to change settings like the WiFi Calling options programatically.

Without root access, it is often not possible to make these changes without direct user intervention. In other words, you have to toggle a software option yourself. This is a problem when there is no rhyme or reason as to when these changes are taking place.

Occasionally the phone manufacturer gives you the ability to make these changes automatically, without root. Often this is available via a custom settings option you can change via an automation app, such as Tasker. This is especially important on a phone that does not have root available.

No Settings Available to automatically change the Unlocked Galaxy S20 WiFi Calling preferences

On the Samsung Galaxy S20 series, until and including One UI 2.5 (Android 10), there was no setting available to make this modification. This meant that every time the phone changed itself to Cellular Preferred, you would have to manually change it back.

This was a huge issue, because it led to the potential for missed calls. What if you missed the notification that the settings had been updated? You could be disconnected from the network and not realize it, leaving you off the grid unintended.

That all changed with the Android 11 update. Now you have the ability to set the Galaxy S20 WiFi Calling preferences automatically via an automation app, such as Tasker.

Samsung to the Rescue: Android 11 / One UI 3.0

My Galaxy S20+ updated to Android 11 / One UI 3.0 late last week. The first thing I hoped for was that they had fixed this issue. Unfortunately, they had not. The phone still randomly changes itself to Cellular Preferred for WiFi Calling.

Fortunately though, they did the next best thing: there is now a setting that we can monitor and use to have automation software make the change automatically. We can now create a Tasker profile that will automatically change the setting for us, if needed.

Tasker Setup to auto-change Unlocked Galaxy S20 WiFi Calling preferences

The Tasker Custom Setting we are looking for is: wifi_call_preferred1.

That setting controls whether the Android system will use WiFi preferred for calls (set to 1), Cellular Preferred (set to 2), or WiFi only (set to 3, not recommended). In our case, we always want to be using WiFi Preferred.

So, the way we can accomplish this is by setting up a Tasker profile to automatically fix that preference any time the system changes it. From the Tasker Profiles screen, press the + button at the bottom of the screen:

screenshot tasker add new profile

Choose Event, and then search for Custom Setting.

screenshot tasker event select custom setting

Configure this Custom Setting profile to monitor for when wifi_call_preferred1 changes to 2 (which indicates Cellular Preferred). Use System for the Setting type.

screenshot tasker profile event unlocked galaxy s20 wifi calling preferences changed

Next, create a task for this profile. Give it a descriptive name, such as something like wifi calling: wifi preferred.

Search for the Custom Setting action.

screenshot tasker action select custom setting

We now want to configure this action to set the wifi_call_preferred1 System Setting we monitored earlier back to 1 (WiFi Preferred).

screenshot tasker action for changing unlocked galaxy s20 wifi calling preferences back to wifi preferred

Once it has all been put together, you’ll end up with something that looks like this:

screenshot complete tasker profile for wifi calling preferences change

If desired, you can easily expand upon this to only perform this action when connected to a certain WiFi network (at home, perhaps). Or, to only fire under any number of other scenarios / conditions.

I’m Not Sure How to Do This – Is There An Easier Way?

Below is the XML code for the Tasker profile I have been using. It has worked beautifully for around a week now. If you are still unsure how to do this manually using the instructions above, you can just import this XML code into Tasker.

<TaskerData sr="" dvi="1" tv="5.10.1">
	<Profile sr="prof89" ve="2">
		<nme>wifi calling changed to cellular preferred</nme>
		<Event sr="con0" ve="2">
			<Int sr="arg0" val="2"/>
			<Str sr="arg1" ve="3">wifi_call_preferred1</Str>
			<Str sr="arg2" ve="3">2</Str>
	<Task sr="task81">
		<nme>wifi calling: wifi preferred</nme>
		<Action sr="act0" ve="7">
			<Int sr="arg0" val="2"/>
			<Str sr="arg1" ve="3">wifi_call_preferred1</Str>
			<Str sr="arg2" ve="3">1</Str>
			<Int sr="arg3" val="0"/>
			<Str sr="arg4" ve="3"/>

With this profile enabled, I can check the log and see this running occasionally. This indicates the system had changed the preference (and my task had successfully changed it back). I have not seen the dreaded WiFi Calling preferences update notification since setting this up. Every time I check it myself, it’s still set to WiFi Preferred.

You can import this Profile and Task easily on your phone by visiting TaskerNet from your phone, and following the instructions.

Finished Product

Once this is complete, your phone should now hold the WiFi Preferred preference. Even if the system tries to change it. Enjoy!

galaxy s20 wifi calling settings

If these instructions have helped you, please check out some of our other tech projects!

UPDATE (1/16/2021): A few times since posting this article, I have seen the WiFi Calling Preferences Updated message come back up on my phone. However, the Tasker profile still does seem to work.

Something I have noticed is that if you go into the main Galaxy S20 WiFi Calling menu after the notification comes up, it’ll say Cellular Preferred. This isn’t accurate, however. If you check the setting value in Tasker, you’ll see that it has been set to 2 (WiFi Preferred), even though the menu says Cellular Preferred.

This means that the Tasker profile has already changed it back, but it seems that One UI doesn’t update that menu immediately after it has been changed. I haven’t yet figured out what the exact trigger is to update that menu.

4.7 3 votes
Article Rating
Notify of
1 Comment
Newest Most Voted
Inline Feedbacks
View all comments

[…] before but I have used this tasker schedule to keep my calling preference to WiFi preferred. https://www.grecobon.com/2021/01/unlocked-galaxy-s20-wifi-calling-issues/ My question is how do I set it to only run when I’m connected to my home wifi. If I’m […]