如何在Android 2.3上启用数据连接

4
参照如何在安卓上禁用移动数据,我们知道在安卓2.2中可以通过Java反射来启用/禁用数据连接的方法。然而,在安卓2.3及以上版本中,不再支持android.permission.MODIFY_PHONE_STATE,我发现上述方法在安卓2.3中无效。你有没有其他想法来启用数据连接?
3个回答

9
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权限。

嗨,谢谢。唯一的问题是它不能在我的HTC EVO 4G上稳定地启用数据连接 - 尽管小部件似乎已启用,但实际上并没有真正连接到数据。(禁用数据连接总是可以的) - Richard Ye
我遇到了以下运行时错误 java.lang.reflect.InvocationTargetException。 - mcacorner

2
您还需要添加:

<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />

到manifest.xml文件


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" /> 

;)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接