Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何打开手机网络工作?_Android - Fatal编程技术网

Android 如何打开手机网络工作?

Android 如何打开手机网络工作?,android,Android,我试图使用下面的代码打开MobileNetwork,但它不起作用,并抛出**NoSuchMethodexception**。如何打开移动网络而不出现任何异常 public void setMobileDataEnabled(boolean enabled,Context ctx) { try{ final ConnectivityManager cm = (ConnectivityManager) ctx.getSystemService(Context.CONNECTI

我试图使用下面的代码打开MobileNetwork,但它不起作用,并抛出**NoSuchMethodexception**。如何打开移动网络而不出现任何异常

public void setMobileDataEnabled(boolean enabled,Context ctx) {
    try{
        final ConnectivityManager cm = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
        final Class conmanClass = Class.forName(cm.getClass().getName());
        final Field connectivityManagerField = conmanClass.getDeclaredField("mService");
        connectivityManagerField.setAccessible(true);
        final Object connectivityManager = connectivityManagerField.get(cm);      
        final Class connectivityManagerClass =  Class.forName(connectivityManager.getClass().getName());
        final Method setMobileDataEnabledMethod = connectivityManagerClass.getDeclaredMethod("setMobileDataEnabled",Boolean.TYPE);
        setMobileDataEnabledMethod.setAccessible(true);
        setMobileDataEnabledMethod.invoke(connectivityManager, enabled);
    }
    catch(Exception e){
        e.printStackTrace();
    }}
这是我添加的权限


“android.permission.CHANGE_NETWORK_STATE”(android.permission.CHANGE_NETWORK_STATE)用于访问WIFI状态:

WifiManager wifiManager ;
wifiManager  = (WifiManager)this.getSystemService(this.WIFI_SERVICE);
wifiManager.setWifiEnabled(true);        //True - to enable WIFI connectivity .
对于访问数据/3G状态:

ConnectivityManager dataManager;
dataManager  = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
Method dataMtd = ConnectivityManager.class.getDeclaredMethod("setMobileDataEnabled", boolean.class);
dataMtd.setAccessible(true);
dataMtd.invoke(dataManager, true);        //True - to enable data connectivity .
现在,您需要在清单文件中添加此权限:

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