#android #android-wifi #wifi-direct #programmatically
Вопрос:
Следуя документации Android, я использую этот код для программного подключения к определенному SSID:
private void connectToAP(String ssid, String password) {
...
WifiNetworkSpecifier wifiNetworkSpecifier = new WifiNetworkSpecifier.Builder()
.setSsid(ssid)
.setWpa2Passphrase(password)
.build();
NetworkRequest.Builder requestBuilder = new NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
.setNetworkSpecifier(wifiNetworkSpecifier);
NetworkRequest request = requestBuilder.build();
connManager.requestNetwork(request, myNetworkCallback);
...
bindNetwork(); //this method will bind the network without internet
}
как описано в документации https://developer.android.com/guide/topics/connectivity/wifi-bootstrap#bypass-approval, если я не забуду сеть, второе подключение к этому конкретному SSID должно обойти утверждение пользователя.
Моя проблема в следующем:
- Вызовите «connectToAP«.
- Одобрение пользователя
- Соединенный
- Через некоторое время устройство интернета вещей отключает Wi-Fi на несколько секунд
- Обратный вызов разъединения повторяет попытку вызова метода «connectToAP» (пункт 1), но утверждение пользователя (пункт 2) не обходится, как ожидалось
Что я делаю не так? Спасибо!