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