Как подключиться к SSID и получить статус соединения с получателем - PullRequest
0 голосов
/ 28 ноября 2018

В настоящее время я работаю над приложением, которое должно подключиться к определенному SSID и создать сокет с AP.Я хочу получить событие, когда соединение устанавливается через приемник.Я использую этот код для подключения к SSID:

public boolean connectToSSID(Context context, final String ssid, final String pass) {
        WifiConfiguration conf = new WifiConfiguration();
        conf.SSID = "\"" + ssid + "\""; // Please note the quotes.
        // String should
        // contain ssid in quotes

        WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        List<ScanResult> networkList = wifiManager.getScanResults();

        setText("Check WiFi devices");
        if (networkList != null) {
            for (ScanResult network : networkList) {
                // check if current connected SSID
                if (network.SSID.equals(ssid)) {
                    // get capabilities of current connection
                    String Capabilities = network.capabilities;
                    // Log.d (TAG, network.SSID + " capabilities : " +
                    // Capabilities);

                    if (Capabilities.contains("WPA2")) {
                        conf.preSharedKey = "\"" + pass + "\"";
                    } else if (Capabilities.contains("WPA")) {
                        conf.preSharedKey = "\"" + pass + "\"";
                    } else if (Capabilities.contains("WEP")) {
                        conf.wepKeys[0] = "\"" + pass + "\"";
                        conf.wepTxKeyIndex = 0;
                        conf.allowedKeyManagement
                                .set(WifiConfiguration.KeyMgmt.NONE);
                        conf.allowedGroupCiphers
                                .set(WifiConfiguration.GroupCipher.WEP40);
                    }

                    wifiManager.addNetwork(conf);
                    List<WifiConfiguration> list = wifiManager
                            .getConfiguredNetworks();
                    for (WifiConfiguration i : list) {
                        if (i.SSID != null && i.SSID.equals("\"" + ssid + "\"")) {
                            wifiManager.disconnect();
                            wifiManager.enableNetwork(i.networkId, true);
                            wifiManager.reconnect();
                            /*if(isWifiConnected(context)){
                                setText("Connected to SSID");
                                return true;
                            }else{
                                setText("Unable to connect");
                                return false;
                            }*/
                            return true;
                        }
                    }
                    break;
                }
            }
        }
        return false;
    }

Я уже прочитал эти вопросы, но не смог найти ответ.

Как подключиться копределенная сеть Wi-Fi в Android программно?

Как узнать, подключен ли Wi-Fi к Android?

Как определитькогда WIFI-соединение установлено в Android?

Как автоматически подключить WiFi с указанным SSID?

Вопрос в том, как я могу получить событие подключениячерез ресивер?Заранее спасибо

...