数据连接启用的Android服务中/禁用代码崩溃(Data connection enable/di

2019-09-20 03:58发布

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);
}

上面的代码是使/在机器人2 3+禁用数据连接。 它的工作原理没有,当我在一个活动运行的任何错误。 但是,当我试图运行服务中的应用程序崩溃。 谁能告诉我为什么会这样?

Answer 1:

问题解决了通过添加以下额外的权限清单文件:

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


文章来源: Data connection enable/disable code crashes inside a android service