参考How to disable Mobile Data on Android,我们知道通过java反射在Android 2.2中启用/禁用数据连接的方法。
但是,在Android 2.3及更高版本中,android.permission.MODIFY_PHONE_STATE
不再受支持,我发现上述方法在Android 2.3中无效。您还有其他想法来启用数据连接吗?
答案 0 :(得分:10)
ConnectivityManager mgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
Method dataMtd = ConnectivityManager.class.getDeclaredMethod("setMobileDataEnabled", boolean.class);
dataMtd.setAccessible(true);
dataMtd.invoke(mgr, true/false);
您还需要 android.permission.CHANGE_NETWORK_STATE 权限
答案 1 :(得分:2)
您还需要添加
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
到manifest.xml
答案 2 :(得分:0)
在你的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" />
)