Android Q Wifi соединение через WifiNetworkSpecifier теряет соединение сразу после установления соединения - PullRequest
1 голос
/ 12 марта 2020

Я сейчас пытаюсь подключиться к сети 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"/>

Когда я отлаживаю Обратный вызов, он выполняет методы в следующем порядке:

  1. onAvailable ()
  2. onCapabilitiesChanged ()
  3. onBlockedStatusChanged (заблокировано: false)
  4. onCapabilitiesChanged ()
  5. onLost ()

Я уже ссылался на эти Android Q, программно подключайтесь к другая точка доступа WiFi для inte rnet
Подключение к сети Wi-Fi продолжает отключаться при Android Q Запрос Wi-Fi Network Api проблема подключения в android 10 (Q) Android Q, WifiNetworkSpecifier теряет Wifi сразу после установления соединения

, и я не смог найти решение.

Есть ли что-то, что я пропускаю в сетевом запросе, что вызывает отключение. или любое другое решение приветствуется.

Спасибо.

...