Referring to How to disable Mobile Data on Android , we know the approach to enable/disable data connection in Android 2.2 by java reflection. However, in Android 2.3 and up
You also need to add
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
to the manifest.xml
ConnectivityManager mgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
Method dataMtd = ConnectivityManager.class.getDeclaredMethod("setMobileDataEnabled", boolean.class);
dataMtd.setAccessible(true);
dataMtd.invoke(mgr, true/false);
you need android.permission.CHANGE_NETWORK_STATE permission too
In your androidmanifest.xml:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
;)