需要添加權限
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> //系統級應用 <uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/>
WIFI 開關 設置
/**
* set wifi
* android Q 版本以下可以使用
*/
private void changeWiFi() {
mWifiService = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
if (mWifiService.isWifiEnabled()){
mWifiService.setWifiEnabled(false);
}else {
mWifiService.setWifiEnabled(true);
}
}
4G網絡開關設置,支持5.0以上版本(系統權限下,否則報錯)
/**
* 設置網絡
* @param context
* @param enabled
*/
public void setMobileDataState(Context context, boolean enabled) {
TelephonyManager telephonyService = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
try {
Method setDataEnabled = telephonyService.getClass().getDeclaredMethod("setDataEnabled",boolean.class);
if (null != setDataEnabled) {
setDataEnabled.invoke(telephonyService, enabled);
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 獲取當前網絡狀態
* @param context
* @return
*/
public boolean getMobileDataState(Context context) {
TelephonyManager telephonyService = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
try {
Method getDataEnabled = telephonyService.getClass().getDeclaredMethod("getDataEnabled");
if (null != getDataEnabled) {
return (Boolean) getDataEnabled.invoke(telephonyService);
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}