Можно ли программно включить Wi-Fi на устройствах Android 10?

Поскольку setWifiEnabled устарел на Android 10 , как программно включить Wi-Fi на устройствах Android 10?

Возможно ли вообще программно включить Wi-Fi на Android 10+ (SDK 29)?


person AdeleGoldberg    schedule 24.09.2019    source источник
comment
Возможный дубликат при включении Wi-Fi с помощью WifiManager останавливается. работать на Android 10   -  person Martin Zeitler    schedule 25.09.2019
comment
Думаю, stackoverflow.com/a/63262649/2677764 может помочь вам с проблемой переключения Wi-Fi.   -  person Shredder    schedule 05.08.2020


Ответы (3)


Нет, это невозможно enable или disable Wi-Fi programmatically с Android-10 API level 29 [пока Google не предоставит альтернативное решение].

Для приложений, ориентированных на Build.VERSION_CODES.Q или выше, этот API всегда будет возвращать false и не будет иметь никакого эффекта.

Если приложения нацелены на более старый SDK (Build.VERSION_CODES.P или ниже), они могут продолжать использовать этот API.

Существует проблема 128554616, которая уже была создана на google issuetracker форуме. Вы можете увидеть там любую обновленную информацию.

person Jakir Hossain    schedule 24.09.2019
comment
Ах, само API забирают. Это оказалось интереснее, чем я думал :-) - person AdeleGoldberg; 24.09.2019
comment
Я обновил свой ответ, добавив issuetracker, который уже создан на форуме Google. надеюсь, вы сможете найти больше информации у них. Удачного кодирования. - person Jakir Hossain; 24.09.2019
comment
Google ответил "Не исправлю" (предполагаемое поведение). Это хуже с каждым обновлением андроида. - person Ton; 29.10.2019
comment
Я использую val wifiManager = context.getSystemService (Context.WIFI_SERVICE) как WifiManager wifiManager.isWifiEnabled = true ДЛЯ ВКЛЮЧЕНИЯ WIFI в android 8, НО он не работает. Любой другой вариант - person Gyan Swaroop Awasthi; 20.07.2020

Теперь в android 10 можно сделать вот так

Intent panelIntent = new Intent(Settings.Panel.ACTION_INTERNET_CONNECTIVITY);
startActivityForResult(panelIntent);

ACTION_INTERNET_CONNECTIVITY Отображает настройки, связанные с подключением к Интернету, например режим полета, Wi-Fi и мобильные данные.

ACTION_WIFI Показывает настройки Wi-Fi, но не другие настройки подключения. Это полезно для приложений, которым требуется соединение Wi-Fi для выполнения больших загрузок или загрузок.

ACTION_NFC Отображает все настройки, относящиеся к беспроводной связи ближнего радиуса действия (NFC).

ACTION_VOLUME Показывает настройки громкости для всех аудиопотоков.

person Ali Imran    schedule 20.03.2020
comment
Это не отвечает на вопрос, как программно включить Wi-Fi на 10+, но дает ближайший доступный вариант, ориентированный на SDK 29. - person Darkendorf; 31.07.2020

Да, это так! Google дает довольно четкий ответ:

Если приложения нацелены на более старый SDK (Build.VERSION_CODES.P или ниже), они могут продолжать использовать этот API.

Измените свой API на 28, и он отлично работает. Или, если вам нужно решение для таких приложений, как Tasker или Automate, см. Мой пост здесь: https://stackoverflow.com/a/65022589/14712690

person wlanrouter    schedule 26.11.2020