hc
2023-02-13 e440ec23c5a540cdd3f7464e8779219be6fd3d95
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
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);
    }
}