Android Q / 10 не может решить проблему с URL-адресом хоста при подключении к SSID, у которого нет Интернета

У меня есть SSID, у которого нет доступа в Интернет, и я пытаюсь подключить его программно из приложения для Android. Я должен сделать несколько вызовов api с этим SSID, хотя у него нет Интернета. Все работает нормально под версиями android Q. Есть некоторая проблема с версией Android Q.

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

Я использую WifiNetworkSpecifier и диспетчер Wi-Fi для программного подключения к SSID (без Интернета).

 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? Что еще мне нужно изменить, чтобы решить эту проблему?


person hacker    schedule 29.01.2020    source источник


Ответы (1)


Вы не можете исправить эту проблему, это ошибка в Android 10, проблема открыта в issueTracker, Google сказал, что она исправлена, но они не поделились решением. Позор тебе, Google!

person Euphor08    schedule 22.07.2020