[Android Apps and Games] cygery:
Hi,

I've developed a widget to toggle (preferred) network types, e.g., 2G, 3G, 2G/3G, LTE, on Android 5.0/5.1 (Lollipop), Android 6.0 (Marshmallow), and Android 7.0/7.1 (Nougat). It requires root.

This is an xda-exclusive free version! If you want to support me, please consider getting the paid version on Google Play or check out my other apps.

Please note: Redistribution of this app is not allowed!

New: Support for dual SIM/multi SIM devices on Android 6.0 and later.

Paid version on Google Play (same functionality): https://play.google.com/store/apps/details?id=com.cygery.togglenetworktype

Device compatibility: second post

Features:

Widget (cycle through configurable list of network types)

Locale/Tasker plugin (set specific network type or toggle to next)

Shortcut (set specific network type or toggle to next)

Custom names for network types (text shown on the widget)

Custom background image or color

Configure text size and color

Dual SIM/multi SIM support on Android 6.0 and later

Device Support

Device support depends on a variety of factors, including your specific device model, Android version, installed (custom) ROM, used root provider (su binary), and SELinux configuration. This app includes options to deal with different configurations of some of those factors. Please let me know if this app does not work on your device.

Notes

The widget is passive. Thus, it has to request root every time it is refreshed. Although the battery impact is negligible, this usually results in frequent (Toast) messages indicating that the app was granted root rights. Please refer to your superuser management app if you'd like to disable those messages specifically for this app.

This app includes a (static) shortcut and a (dynamic) widget. Usually, both shortcut and widget are shown in the same list which is used to add them to your homescreen although this list is commonly just labeled "Widgets". For reference, the screenshots in this post show the widget. The shortcut looks like the app icon and has rounded corners. Please note: sometimes the widget is not shown immediately after installing this app. This is likely a bug in the launcher/homescreen app. Please reboot your device in that case.

Known issues:

Android 6/7: When the network type is changed via this app and then the cell radio system settings are opened, the network type is reset to the one set there. Similarly, the previous issue might happen after a reboot or when airplane mode is toggled on and off.

Android 6/7: Some devices/(beta) ROMs don't work with this app (currently). Please search the thread for more details/user reports.

Network type specific: Depending on your device and carrier when using certain modes, e.g., LTE only, you might be unable to send or receive calls, SMS, etc. This is a technical limitation and has nothing to do with this app. Please keep this limitation in mind in case you are not sure whether you are affected by it or not.

Network type specific: Depending on your device/Android version/(custom) ROM/etc. some network types might be unavailable, don't work, or, when trying to select them, result in a different one being activated instead. Please search the thread for more details/user reports. This is outside of this app's control.

Custom ROMs: On some custom ROMs, the default toggle mechanism does not work. There exists a "custom ROM mode" which uses a different method that works on (most) CyanogenMod ROMs and other custom ROMs based on it. However, some network types are not supported by the custom ROM mode. When trying to set them, e.g., the app freezes. Please disable any such unsupported types via the app settings. Additionally, depending on the device/ROM, setting the preferred network type might work, e.g., via the Locale/Tasker plugin or shortcut, but this app might be unable to retrieve the currently set preferred network type. In such cases, toggling to the "next" preferred network type doesn't work since this app doesn't know the current preferred network type.

Other issues: When reporting any issues please include the following info in your post: Device, ROM and ROM version, exact version number of this app you use (don't just write "latest"), superuser management app (e.g., SuperSU) and version, content of any shown error messages. Describe in detail what you tried to do, what you expected to happen, and what happened instead. Include screenshots/screencasts where possible and useful to show the issue.

Cheers,

cygery

Screenshots: