android Q / 10 не удалось решить проблему с URL-адресом хоста при подключении к SSID, у которого нет интернета - PullRequest
2 голосов
/ 29 января 2020

У меня есть SSID, у которого нет доступа к inte rnet, который я пытаюсь подключить программно из приложения android. Я должен сделать несколько вызовов API с этим SSID, хотя он не имеет inte rnet. Все отлично работает ниже android Q версий. Существует некоторая проблема с android Q-версией.

Я использую Retrofit для связи https.

Я использую WifiNetworkSpecifier и wifi manager для подключения к SSID (нет inte rnet ) программно.

 WifiNetworkSpecifier specifier = new WifiNetworkSpecifier.Builder()
                .setSsid(ssid)
                .setWpa2Passphrase(password)
                .build();

NetworkRequest networkRequest = new NetworkRequest.Builder()
    .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
    .removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
    .addCapability(NetworkCapabilities.NET_CAPABILITY_TRUSTED)
    .setNetworkSpecifier(specifier)
    .build();


    ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback()
   @Override
    public void onAvailable(Network network) {

    }
    @Override
    public void onUnavailable() {
        super.onUnavailable();

    }
    @Override
    public void onLost(Network network) {
    }
};
connectivityManager.requestNetwork(networkRequest, networkCallback, 30000
);

Я могу успешно подключиться к сети Wi-Fi из моего кода. Но каждый раз, когда я выполняю вызовы API SSID, я получаю сообщение " Невозможно разрешить хост" URL. Отсутствует адрес, связанный с именем хоста"в ответном вызове retrofit onFailure () . Но что интересно, если я подключаю SSID из приложения настроек телефона, я не вижу неизвестного исключения для хоста, и все работает нормально.

Может кто-нибудь мне помочь, в android Q, чем отличается подключение SSID программно от через android настройки? Что еще мне нужно изменить, чтобы исправить эту проблему?

...