权限
1.打开wifi权限
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
2.扫描wifi权限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
1.开关按钮UI(switch_bluetooth)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/item_hight"
android:gravity="center_vertical"
android:orientation="horizontal">
//开关按钮
<Switch
android:track="@drawable/switch_selector"
android:thumb="@drawable/selector_thumb_check"
android:id="@+id/swtich"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
2.wifi utils(WifiUtil)
public class WifiUtil {
private final WifiManager mWifiManager;
private final WifiInfo mWifiInfo;
private static WifiUtil wifiUtil;
private List<WifiConfiguration> mWifiConfiguration;
public Context mcontext;
private final ConnectivityManager mConnectivityManager;
public static final int INVALID_NET_ID = -1;
private static final Pattern HEX_PATTERN = Pattern.compile("^[0-9A-F]+$");
private WifiUtil(Context context) {
mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
mWifiInfo = mWifiManager.getConnectionInfo();
mcontext = context;
mConnectivityManager = (ConnectivityManager) context.getSystemService(
Context.CONNECTIVITY_SERVICE);
}
public static WifiUtil getInstance(Context context) {
if (wifiUtil == null) {
wifiUtil = new WifiUtil(context);
}
return wifiUtil;
}
//open wifi
public void openWiFi() {
if (!isWifiEnable() && null != mWifiManager) {
mWifiManager.setWifiEnabled(true);
}
}
//close wifi
public void closeWiFi() {
if (isWifiEnable() && null != mWifiManager) {
mWifiManager.setWifiEnabled(false);
}
}
public boolean isWifiEnable() {
return mWifiManager.isWifiEnabled();
}
@SuppressLint("MissingPermission")
public List<WifiConfiguration> getLocalWifi() {
mWifiConfiguration = mWifiManager.getConfiguredNetworks();
return mWifiConfiguration;
}
//connect local wifi
public void connectConfiguration(WifiConfiguration wifiConfiguration) {
mWifiManager.enableNetwork(wifiConfiguration.networkId, true);
}
public void startScan() {
if (null != mWifiManager) {
mWifiManager.startScan();
}
}
public List<ScanResult> getScanResults() {
if (null != mWifiManager) {
return mWifiManager.getScanResults();
}
return null;
}
//wifihot isopen
public boolean isApOn() {
WifiManager wifimanager = (WifiManager) mcontext.getSystemService(mcontext.WIFI_SERVICE);
try {
Method method = wifimanager.getClass().getDeclaredMethod("isWifiApEnabled");
method.setAccessible(true);
return (Boolean) method.invoke(wifimanager);
} catch (Throwable ignored) {
}
return false;
}
}
3.开关按钮java(WifiSwitchView)
public class WifiSwitchView extends LinearLayout {
private final Switch swtich;
public WifiSwitchView(Context paramContext, AttributeSet paramAttributeSet) {
super(paramContext, paramAttributeSet);
View view = View.inflate(paramContext, R.layout.swit