Альтернатива для устаревших методов WifiManager.getConfiguredNetworks и WifiManager.removeNetwork на Android В? - PullRequest
3 голосов
/ 17 января 2020

Для настройки класса UiTest мне нужно начать с запоминающихся сетей Wi-Fi. Для этого я использую комбинацию WifiManager.getConfiguredNetworks () и WifiManager.removeNetwork () , которые теперь ограничены и не рекомендуются для Android Q.

Теперь, поскольку я запускаю тесты в привилегированном режиме (суперпользователь), метод getConfiguredNetworks () фактически возвращает полный список сетей, а removeNetwork () удаляет сети, которые я передаю, по возвращенным идентификаторам WifiConfiguration, даже несмотря на то, что я запускаю этот код на устройстве Android Q.

TLDR: Моя проблема заключается в том, что эти два метода устарели без надлежащей проверки заменить, а не то, что они сейчас бесполезны в использовании. По крайней мере, насколько мне известно, поэтому я и спрашиваю; Есть ли способ, которым я, с моим testapplication, запущенным от имени суперпользователя, может:

  1. Получить все конфигурации Wi-Fi
  2. Удалить их по одному

В документации можно прочитать:

getConfiguredNetworks ()

Этот метод устарел на уровне API 29. a) См. WifiNetworkSpecifier.Builder # build () для нового механизма запуска соединения с сетью Wi-Fi. b) См. addNetworkSuggestions (java .util.List), removeNetworkSuggestions (java .util.List) для получения информации о новом API для добавления сетей Wi-Fi для рассмотрения при автоматическом подключении к wifi. Примечание о совместимости: Для приложений, нацеленных на Build.VERSION_CODES.Q или выше, этот API возвратит пустой список.

Решения, которые они связали, похоже, предназначены для действия по подключению к сетям Wi-Fi, но это не то, что я ищу.

PS, я был бы по крайней мере счастлив, выполнив команды оболочки adb (в режиме superuser-режима, если необходимо), чтобы сделать то же самое. Уже пытались использовать wpa_cli list_networks , чтобы хотя бы перечислить все сети, но, кажется, не доступны.

Также пытались удалить data / misc / wifi / wpa_supplicant и data / misc_ce / 0 / wifi / WifiConfigStore. xml, безрезультатно.

...