Я сейчас пытаюсь подключиться к сети Wi-Fi. Я использовал приведенный ниже код.
WifiNetworkSpecifier specifier = new WifiNetworkSpecifier.Builder()
.setSsid(ssid)
.setBssid(MacAddress.fromString(bssid))
.setWpa2Passphrase(password)
.build();
NetworkRequest request = new NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.setNetworkSpecifier(specifier)
.build();
ConnectivityManager manager = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
manager.requestNetwork(request, new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(@NonNull Network network) {
ConnectivityManager.setProcessDefaultNetwork(network);
super.onAvailable(network);
NetworkInfo info = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (info != null && info.isConnectedOrConnecting()) {
if (!emitter.isDisposed()) {
emitter.onSuccess(true);
}
} else {
if (!emitter.isDisposed()) {
emitter.onError(new RuntimeException("OS Disconnected"));
}
}
}
@Override
public void onUnavailable() {
super.onUnavailable();
if (!emitter.isDisposed()) {
emitter.onError(new RuntimeException("Could not connect Wifi"));
}
}
});
});
выпуск: приведенный выше код хорошо работает с телефоном Pixel и Nokia, но на устройствах Oneplus я получаю тост успех подключения тост и сразу после этого Wi-Fi отключается. Символ Wi-Fi виден очень кратко в строке состояния. В следующий момент Wifi-Symbol исчезает, и снова отображается системный диалог для подключения к Wi-Fi.
Предоставили ниже разрешения, и разрешение на местоположение предоставляется, и оно также включено в устройстве.
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
Когда я отлаживаю Обратный вызов, он выполняет методы в следующем порядке:
- onAvailable ()
- onCapabilitiesChanged ()
- onBlockedStatusChanged (заблокировано: false)
- onCapabilitiesChanged ()
- onLost ()
Я уже ссылался на эти Android Q, программно подключайтесь к другая точка доступа WiFi для inte rnet
Подключение к сети Wi-Fi продолжает отключаться при Android Q Запрос Wi-Fi Network Api проблема подключения в android 10 (Q) Android Q, WifiNetworkSpecifier теряет Wifi сразу после установления соединения
, и я не смог найти решение.
Есть ли что-то, что я пропускаю в сетевом запросе, что вызывает отключение. или любое другое решение приветствуется.
Спасибо.