I know the definition of Airplane mode is all communications and radio signals are blocked. But is it possible to turn off the "calling/receiving" part of the phone so your phone is not connecting to a cell tower and only allow Wifi? I've looked into a couple of apps in Google Play but they're either not working or out of date with newer versions of Android.

I know there is strong opinions on both sides of the issue but I'm worried about radiation from my phone since i use it a lot in bed and I hold the phone close to my head and face. At night I'm not worried about receiving calls, so I just want to turn off the phone part and use WiFi. Is there a way? Or am i just crazy and paranoid?

  • It's possible on all Samsung devices, maybe not only on Samsung, but I am speaking about what I have personal experience. Just turn on Airplane mode and turn on WiFi. Simple as a pie! – Suncatcher Apr 29 '17 at 5:59

Possible to turn on Airplane mode with WiFi on only?

Well yeah, possible in all of my devices running Android 4.2.1, 4.4.2, 5.0.2 and 5.1.1. This applies for portable hotspot too.

The radios that are supposed to be turned off when Airplane mode gets enabled are saved in the key airplane_mode_radios under the table global inside /data/data/com.android.settings/databases/settings.db (Settings Storage app's database).

Set up in PC, enable USB debugging in device, connect it into PC, launch a shell, and enter:

adb shell settings get global airplane_mode_radios
adb shell content query --uri content://settings/global  --projection name:value --where "name='airplane_mode_radios'"

Given the command executed, you would see (either one of the result) something like:

Row: 0 name=airplane_mode_toggleable_radios, value=bluetooth,wifi,nfc

You can choose to remove wifi from the value to achieve the final objective.

Enter any one of the commands:

adb shell settings put global airplane_mode_radios  "cell,bluetooth,nfc,wimax"
adb shell content update --uri content://settings/global --bind value:s:'cell,bluetooth,nfc,wimax' --where "name='airplane_mode_radios'"

Note: Do not copy-paste. Note the string that you got in the first output. Then remove wifi, from it and then pass the resultant between the double quotes "" the way I've shown above.

Now you can turn on the Wi-Fi followed by the Airplane mode. Your Wi-Fi wouldn't turn off.

The need for using ADB was meant for once only. If you decide to stop Wi-Fi when Airplane mode becomes active then simply increment wifi in that key's value.

All good here!

Do you know?

The reason you're able to toggle Wi-Fi, Bluetooth and NFC manually even when Airplane mode is active is because they are mentioned in the value for key airplane_mode_toggleable_radios.

Enter any one of the commands:

adb shell settings get global airplane_mode_toggleable_radios
adb shell content query --uri content://settings/global  --projection name:value --where "name='airplane_mode_toggleable_radios'"

You would see (either one of them) something like:

Row: 0 name=airplane_mode_toggleable_radios, value=bluetooth,nfc    

Remove a radio from that key's value such as wifi and you wouldn't be able to toggle that radio (Wi-Fi here) again when Airplane mode is active, no matter what, unless of course you revert the changes in that key's value.

  • 4
    Imaginary 2nd upvote (just needed that and remembered your post). Hm, not even a mod can upvote twice, unfortunately ;) – Izzy May 22 '16 at 19:09
  • 5
    To others having trouble with exceptions when querying with where clauses that have text, you have to escape the single quotation marks. So in the example in the answer, you'd say --where "name=\'airplane_mode_toggleable_radios\'" (notice the \'). – Narfanar Apr 28 '17 at 19:34
  • This still works perfectly on android 9.0 when backslashes are used. – light24bulbs Apr 2 '19 at 20:31

I use my mobile like this when I travel. So first turn on Airplane mode and then activate WIFI (for example in notification panel). At the end you will have Airplane mode, WIFI activated, and all other connection deactivated.

  • 1
    Lolwut! This totally works :-D. Works for Bluetooth also – Freedom_Ben Jun 30 '17 at 15:55

As you probably already correctly guessed, that's device dependent. On my old HTC Wildfire (aka Buzz) I was able to switch of GSM radio separately – on my Motorola Milestone 2 (aka Droid 2) I am not. What always seems to work is a work-around: Switching to airplane mode, and just enabling WiFi again (and Bluetooth, if you need it).

To not end up "playing piano" each time, this can be automated: e.g. offers to create widgets (rather "shortcuts") for its tasks. So you could first create a task (airplane on, WiFi on, Bluetooth on...), and then make a widget for that. Same for the other direction, if needed. That way you can switch around with the simple tap of a shortcut.

  • Thanks Izzy (+1), will try the airplane mode off/enable wifi trick – George Profenza Dec 9 '13 at 20:52
  • That works great on all of my devices, using Tasker (it's scheduled as my "do-not-disturb night-mode" from 1am to 7am, so wheather info comes in for my morning alarm, but calls don't ;) – Izzy Dec 9 '13 at 21:10
  • Here's a workaround too. :) Possible to turn on Airplane mode with WiFi on only? // Read: Shameless promotion :D – Firelord Sep 9 '15 at 23:37
  • @Firelord provoked upvote granted :) I knew about airplane-radios – but not how to toggle them via ADB. Good job! – Izzy Sep 10 '15 at 10:18
  1. In your Dialer / Phone app, enter *#*#4636#*#*

  2. Select Phone Information

  3. Select Turn off radio

Or use an app like Cell Radio ShutOff.

Note also that you can turn Wi-Fi back on during Airplane Mode (though it can definitely be annoying to have it turned off in the first place).

  • That's a very interesting settings page, thank you! – Mr.Yellow Oct 10 '19 at 12:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.