D C S w i t c h


An android Data Channel Switch for those who believe overwriting APN entries is not the best solution to accomplish a simple but important task.

If you have never stopped to think about why and how you should disable your data channel, there are two reasons you should consider:

  1. significant battery power savings,
  2. transfered mobile data volume savings when on a limited data plan.

The DETAILS section tells you more about the difference between how this and other similar apps go about disabling the data channel, as well as why using this switch may result in significant power savings.

NOTE: HTC Sense is NOT SUPPORTED, since it includes proprietary software using the same internal android services as DCSwitch to manage the data connection. The result is a conflict between the two (connections turned off by DCSwitch will get turned back on automatically by HTC Sense).
If you are running HTC Sense however, you do NOT NEED DCSwitch. Look for the HTC 'Mobile Network Widget' on your phone instead.

Contact: dcswitch_at_cohortor_dot_org

More apps: Tuner - gStrings || Metronome || RTT || Paid Apps Enabler


08/27/10 - v1.1

Modified all three packages to include a test for being run on HTC Sense.

08/16/10 - v1.0

Initial release of all three packages:
1. DCSwitch (the ad supported free version),
2. DCSWitch+ (the ad-free donation version),
3. DCSwitch+ Widget Only (an ultra small package getting the job done).


main activity of DCSwitch home screen displaying the DCSwitch Widget

Most other apps (all those I have tried) change the APN entries on your phone, thereby causing your data channel initialization to fail. This is very similar to having a network card in your computer enabled, with an intentionally corrupt DHCP request packet created every time the card wants to configure itself. Although the result is no network connection, the device is still enabled and will attempt to reconnect every so often.

DCSwitch on the other hand uses reflection and android's undocumented services under the hood to disable the data connection service altogether. In terms of our previous example, this would be like disabling your network card in your computer, shutting it down completely.

The benefits should be apparent. I will just name some of the shortcomings of the APN technique, none of which apply when using DCSwitch:

  1. Mangling APN entries may leave your phone with permanently corrupted entries, if you accidentally uninstall the mangling app without restoring the APNs into their default state.
  2. Having more than one APN toggle app/widget installed results in havoc and permanently corrupted entries.
  3. The widgets never indicate the real state of your data channel. Instead they only show whether or not your APN entries are corrupt at the moment. This is most notable e.g. when roaming with the 'data disabled while roaming' option set on your phone.

Both the APN method and this switch save lots of power due to loss of data connectivity, since most apps and background services of your phone cant and wont run without a live internet connection. In addition, DCSwitch ensures that the phone does not even try to reconnect the data channel, saving thus a few extra mW.

APNs, PDNs, GGSNs and APN Resolution:

An Access Point Name (APN) identifies an IP Packet Data Network (PDN), that a mobile data user wants to communicate with.

The Gateway GPRS Support Node (GGSN) is a main component of the GPRS network, responsible for the interworking between the GPRS network and an external packet switched network, like the Internet.

APN resolution is the process of DNS look up to determine the IP address of the GGSN that provides connectivity to the PDN identified by the APN. When a GPRS mobile phone sets up a data connection (which in technical terms is called setting up a primary PDP context), it provides the APN to which it wants to connect to. APN resolution is then used to select the GGSN and provide an IP address.

Sponsored links by Google:

Note: if you do not see ads by google below, you may have a plugin installed in your browser that blocks them.