首先很有必要讲一下需求,由于搞IT的加班比较多,每天回家基本上都是8点之后,电信网络又贵,无奈我屌丝一个用网时间又少,索性在淘宝上花重金购置了一张1元5小时的上网卡,貌似是广东电信的绝版卡,在广东省内上网5小时一分钱,但是接入点要是CTWAP,否则上网就是1小时3块钱了。用久了发现了一个弊端:网络不好的时候手机会自动切换APN接入点,刚开始的时候我是下载一个了HIAPN的软件,这个软件提供一个桌面插件,很方便看到当前APN接入点是什么。可惜好景不长,随着系统升级,这个软件停止了更新,只能在固件2.3的系统上使用。于是我就琢磨这自己来开发一个插件,而且最好在手机切换APN的时候能够有报警机制(震动)。
扯完了需求,马上就上干货了。
1.切换WIFI开关
如果开着WIFI就关掉,如果关掉就打开。这个是最简单的了,普通应用就OK
/**
* 切换wifi开关
* @param context
*/
public static void changeWifi(Context context) {
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
if (wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(false);
} else {
wifiManager.setWifiEnabled(true);
}
}
对应权限
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
2.切换手机数据流量
2.1 获取手机流量数据开关
pu