Невозможно удалить профиль Wi-Fi, созданный тем же приложением программно - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть приложение для Android, разработанное с использованием форм Xamarin, я покажу доступные сети Wi-Fi внутри моего приложения с помощью Wifi Manager. Пользователь выбирает любую сеть и дает пароль, затем я добавлю эту сеть и включу ее для подключения. Вот код

var configuredNetworksList = wifiManager.ConfiguredNetworks.ToArray();
 if (configuredNetworksList != null)
    {
      var existingWifiConfig = configuredNetworksList.Where(r => r.Ssid == wifiConfig.Ssid).ToArray();
      foreach (WifiConfiguration temp in existingWifiConfig)
            {
                bool isSuccess = wifiManager.RemoveNetwork(temp.NetworkId);
                wifiManager.SaveConfiguration();
            }
        }

        int id = wifiManager.AddNetwork(wifiConfig);

        wifiManager.SaveConfiguration();

        wifiManager.EnableNetwork(id, true)

Приведенный выше код работает нормально. Но сценарий проблемы:

  • Я устанавливаю приложение и выбираю сеть для подключения. Например, "Wi-Fi". Это связано.
  • Теперь перейдите в Настройки-> Wi-Fi в устройстве Android. Здесь есть только один wifi с SSID, показывающий "wifiX" (который я добавил).
  • Затем я удаляю приложение, переустанавливаю то же приложение и делаю тот же шаг, чтобы соединиться с «wifiX». Это подключение к выбранному Wi-Fi. Но теперь мои настройки устройства Android показывают два экземпляра с тем же SSID "wifiX" в списке Wi-Fi.

enter image description here

Примечание. Как видно из кода, перед добавлением выбранной сети я удаляю все сети с одинаковым выбранным ssid.

Согласно документации для Android Android 6.0 Изменения в документации , мы не можем удалить профиль Wi-Fi, созданный другим приложением.

Но в моем случае Wi-Fi был создан тем же приложением.

Кто-нибудь может помочь с этим?

Заранее спасибо.

1 Ответ

0 голосов
/ 20 ноября 2018

уведомление:

var existingWifiConfig = configuredNetworksList.Where(r => r.Ssid == wifiConfig.Ssid).ToArray(); 
//should be SSID, not Ssid.

документ здесь .

...