Я не могу подключиться к определенной сети 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();
}
}