7

TL;DR

Usually, I have my device locked to "2G only" for multiple reasons:

  • saving
  • no need for "high-speed" to simply be informed about new mail or doing the little contacts/calendar syncs (not much changes, either)

But from time to time, I could use 3G:

  • some area that has bad 2G coverage (data-wise)
  • the occasional "internet use" e.g. with a navigation app, looking up "a little more" on the web, or installing something from

For those occasions, I find it impractical to navigate to the settings page and change that manually -- even when done via some "shortcut" placed on a . Preferably, I want to be able to automate this via , to e.g. automatically switch when entering/leaving the "bad coverage area" or when one of those apps is in foreground (both conditions are covered by tasker, just the "action" is missing). I checked thoroughly on our site here, on the , and even did an extensive Google search -- but all that turned up was either a shortcut or a kernel patch for specific ROMs, both no-gos for me.

Hence my...

Question:

Is there any easy way to switch between 2G/3G mode? As said, shortcuts to the settings page do not count (so Can anyone reccomend a 2g / 3g switching widget? is no option). Wanted criteria include:

  • not requiring more than one tap (preferably no tap to trigger the action, see below)
  • a big plus (and favorite wish): ability to be triggered via
  • not depending on specific ROMs (should work with )
  • preferably not involving -- but options requiring root would still be fine with me
  • hacks are fine with me as well :)
6
  • You will almost certainly need to be rooted to do what you're asking; like the GPS, I don't believe non-system Apps have the ability to toggle that.
    – Harsha K
    Apr 24, 2013 at 19:24
  • Which phone have you got? My Tasker has a 2G/3G toggle (under the Net action category when adding a task), but it's disabled on my LTE S3. Apr 24, 2013 at 19:33
  • @HarshaK I will not be rooted -- but my devices are :) That's why I wrote "options requiring root would still be fine with me", though a solution not requiring root would be useful for a broader audience. I'm well aware that a non-root solution is quite unlikely -- but hey, I thought the same when I posted my question about "full backup of non-rooted devices", and got a big surprise. So why not again? :)
    – Izzy
    Apr 24, 2013 at 19:47
  • @TreborRude Same for me, though the device is rooted (looks like Tasker itself does not make use of that). Current device list: see my profile :) Most important ATM would be the LG Optimus 4X -- but again, if the solution is available for a broader audience, all the better.
    – Izzy
    Apr 24, 2013 at 19:50
  • I don't get why a widget is not accepted? Switch pro has a button to do exactly what you want with a single tap, you don't need to be root AFAIK, and is not ROM specific. No tasker support I'm afraid though.
    – UncleZeiv
    Apr 29, 2013 at 22:27

4 Answers 4

2

With Xposed module and Gravity Box installed, the pull down status bar can be customised even on stock ROM (of course it has to be rooted).

I have a Nexus 5 running stock 4.4.4 and following is how it looks: enter image description here

With these installed, one can swipe down with two fingers from top and just tap the last tile shown as "3G" in the image. Though this nearly misses the first requirement of using no more than one tap, technically it still does as you have swipe down and use one tap. enter image description here

That tile toggles between 3G, 2G, 2G3G states. There is a minor lag to see the signal strength tile to reflect the status as "H+" or "E".

By installing the Gravity Box, I was also able to bring in the additional tiles like "Torch On/Off", "Auto Rotate Lock" etc which were not available in the stock ROM.

Update: Thanks to jsen who was kind enough to share an intent to switch between 2G and 3G using Tasker and Gravity Box (that implies Xposed framework and rooting).

To avoid a dead link in future, the content of that Tasker hack is as below:

Send Intent [
Action: gravitybox.intent.action.CHANGE_NETWORK_TYPE
Cat: None
Mime Type:
Data:
Extra: networkType:1
Extra:
Package:
Class:
Target: Broadcast Receiver]

networkType enum values are: 
0: WCDMA Preferred 
1: GSM only <-- This would be "2G" on GSM networks
2: WCDMA only <--WCDMA is "3G" on GSM networks. You may know it as HSPA
3: GSM auto (PRL)
4: CDMA auto (PRL)
5: CDMA only <-- This would be "2G" on CDMA networks
6: EvDo only <-- EvDo is "3G" on CDMA networks
7: GSM/CDMA auto (PRL)
8: LTE/CDMA auto (PRL)
9: LTE/GSM auto (PRL)
10: LTE/GSM/CDMA auto (PRL)
11: LTE only
12: "unknown"

In my office, I have very bad 2G signal which drops my call very frequently. Hence I used to switch to 3G when I reach office. I created an entry task named "Enable 3G" and an exit task named "Enable 2G" which just sends intent as above. With Tasker's "Cell Near" state I can ask Tasker to enable 3G when I am near office and switch back to 2G while leaving.

2
  • Done! Thanks for the update: Now it fits 100%, as the Tasker part can do that automatically. You might wish to add that a Tasker task also can be used as shortcut on the homescreen for manual toggle, when needed.
    – Izzy
    Sep 16, 2014 at 12:25
  • Note that on CM11, the network toggle is already included by default. It's not recommended to use GravityBox with this ROM unfortunately (at least to what I've read), so the auto-toggle via the specified intent is not available there (unless someone can add the corresponding intent for this case).
    – Izzy
    Nov 20, 2015 at 12:00
1

I've been looking for automated network switching for years, and I had always thought that this kind of behaviour was only possible using Cyanogen (or similar) ROMs. Anyway, I recently found some threads on XDA that suggest that this might not be true.

First, it seems that in Sony Devices it's possible to tweak the system to show a 2G/3G toggle:

http://www.xda-developers.com/android/serajr-power-toggles-brings-settings-to-the-small-app-world/

And there's also this other thread that shows you how to "open" any ROM (even stock) so 2G/3G switching is possible. I don't fully understand the process, but as far as I see it should even work with Tasker:

http://forum.xda-developers.com/showthread.php?t=1731187

All methods require rooting the phone, though, which I think is unavoidable.

1
  • If I get that right, the first one is limited to Sony devices – and the second requires to code, patch, and compile code of a system app. Not really fitted for end-users, unfortunately.
    – Izzy
    Sep 11, 2014 at 11:32
0

The hassle free and simple way is to install a launcher which lets you launch "tasks" like Holo Launcher. Just long press Desktop -> Shortcuts -> Activities -> Settings. Once under Settings you might have to dig in to grab the right one. It's a bit tricky but once done, you are all set. I haven't tried it on my new Android but works great on my older GB device.

-1

In Nova launcher you can add a widget -> Activities -> Phone services -> Network settings.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .