void turnData(boolean ON)
{
final ConnectivityManager conman = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
final Class conmanClass = Class.forName(conman.getClass().getName());
final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
iConnectivityManagerField.setAccessible(true);
final Object iConnectivityManager = iConnectivityManagerField.get(conman);
final Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
final Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
setMobileDataEnabledMethod.setAccessible(true);
setMobileDataEnabledMethod.invoke(iConnectivityManager, ON);
}
上面的代码是在android 2中启用/禁用数据连接。 3+。 当我在Activity中运行它时,它没有任何错误。但是,当我试图在服务中运行它时,应用程序崩溃了。谁能告诉我为什么会这样?
答案 0 :(得分:3)
通过向Manifest文件添加以下附加权限解决了问题:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>