У меня есть приложение для 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.
Примечание. Как видно из кода, перед добавлением выбранной сети я удаляю все сети с одинаковым выбранным ssid.
Согласно документации для Android Android 6.0 Изменения в документации , мы не можем удалить профиль Wi-Fi, созданный другим приложением.
Но в моем случае Wi-Fi был создан тем же приложением.
Кто-нибудь может помочь с этим?
Заранее спасибо.