Android网络连接开关控制
用防火墙方式控制App禁止联网,应用可能反复唤醒查询网络,一般应用监听的是ConnectivityManager.CONNECTIVITY_ACTION来控制网络行为,有时候需要直接物理断网。
Android手机网络连接管理主要关注两个方面:数据连接和WiFi连接,分别由TelephonyManager和WifiManager管理,记录一下控制方法。
import android.net.wifi.WifiManager;
import android.telephony.TelephonyManager;
……
private TelephonyManager telephonyService;
private WifiManager mWifiManager;
public void setDataEnable(boolean enable){
int dataState = telephonyService.getDataState();
if(telephonyService == null){
telephonyService = (TelephonyManager)getContext().getSystemService(Context.TELEPHONY_SERVICE);
}
if(enable){
if(dataState == TelephonyManager.DATA_DISCONNECTED){
telephonyService.setDataEnabled(true);
}
}else{
telephonyService.setDataEnabled(false);
}
}
public void setWifiEnabled(boolean enable){
if(mWifiManager == null){
mWifiManager = (WifiManager)getContext().getSystemService(Context.WIFI_SERVICE);
}
if(enable){
if(wifiState != WifiManager.WIFI_STATE_DISABLED){
mWifiManager.setWifiEnabled(true);
}
}else{
mWifiManager.setWifiEnabled(false);
}
}