Как подключиться к определенному Wi-Fi соединению на уровне API 29? - PullRequest
0 голосов
/ 09 ноября 2019

Я не могу подключиться к определенной сети Wi-Fi после перехода на API 29. Мой старый код показан ниже с новым кодом, который я написал. Я пытался проконсультироваться с www.developer.android.com, но не могу заставить его работать. Когда я запрашиваю подключение к определенному Wi-Fi, Android выбирает другой Wi-Fi (например, домашний). Кто-нибудь может мне помочь?

 if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {

        WifiNetworkSpecifier.Builder builder = new WifiNetworkSpecifier.Builder();
        builder.setSsid(ssid);
        builder.setWpa2Passphrase(key);

        WifiNetworkSpecifier wifiNetworkSpecifier = builder.build();

        NetworkRequest.Builder networkRequestBuilder = new NetworkRequest.Builder();
        networkRequestBuilder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
        networkRequestBuilder.setNetworkSpecifier(wifiNetworkSpecifier);

        NetworkRequest networkRequest = networkRequestBuilder.build();
        ConnectivityManager cm = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
        cm.requestNetwork(networkRequest, new ConnectivityManager.NetworkCallback());
    }else{
        wifiConfig.SSID = String.format("\"%s\"", ssid);
        wifiConfig.preSharedKey = String.format("\"%s\"", key);
        wifiConfig.priority = 40;
        WifiManager wifiManager = (WifiManager)getSystemService(WIFI_SERVICE);
        int ssid  = wifiManager.getConnectionInfo().getIpAddress();
        Log.d("prova", ssid+"");
        if(ssid!=201631936) {
            wifiManager.setWifiEnabled(true);
            try {
                Thread.sleep(300);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            int netId = wifiManager.addNetwork(wifiConfig);
            wifiManager.disconnect();
            wifiManager.enableNetwork(netId, true);
            wifiManager.reconnect();
        }
    }
...