package com.rockchip.alexa.jacky.utils; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import static android.content.Context.WIFI_SERVICE; /** * Created by Administrator on 2017/3/22. */ public class Env { public static enum WifiEncType { WEP, WPA, OPEN } public static boolean isWifiEnable(Context context) { return getWifiManager(context).isWifiEnabled(); } public static boolean isWifiConnected(Context context) { NetworkInfo wifiNetworkInfo = getConnectivityManager(context).getNetworkInfo(ConnectivityManager.TYPE_WIFI); return wifiNetworkInfo.isConnected(); } public static boolean openWifi(Context context) { WifiManager manager = getWifiManager(context); if (manager.isWifiEnabled()) { return true; } else { return manager.setWifiEnabled(true); } } public static boolean closeWifi(Context context) { WifiManager manager = getWifiManager(context); if (!manager.isWifiEnabled()) { return true; } else { return manager.setWifiEnabled(false); } } public static String getConnectingSSID(Context context) { WifiInfo wifiInfo = getWifiManager(context).getConnectionInfo(); String ssid = wifiInfo.getSSID(); return ssid.substring(1, ssid.length() - 1); } public static void connectWifi(Context context, String targetSsid, String targetPsd, WifiEncType enc) { String ssid = "\"" + targetSsid + "\""; String psd = "\"" + targetPsd + "\""; WifiConfiguration conf = new WifiConfiguration(); conf.SSID = ssid; switch (enc) { case WEP: conf.wepKeys[0] = psd; conf.wepTxKeyIndex = 0; conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); break; case WPA: conf.preSharedKey = psd; break; case OPEN: conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); } WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); int netId = wifiManager.addNetwork(conf); wifiManager.disconnect(); wifiManager.enableNetwork(netId, true); wifiManager.reconnect(); } public static void connectWifi(Context context, String ssid) { connectWifi(context, ssid, "", WifiEncType.OPEN); } private static WifiManager getWifiManager(Context context) { return (WifiManager) context.getSystemService(WIFI_SERVICE); } private static ConnectivityManager getConnectivityManager(Context context) { return (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); } }