【发布时间】:2019-04-22 13:55:21
【问题描述】:
我有一个使用 Xamarin 表单开发的 android 应用程序,我将使用 Wifi Manager 在我的应用程序中显示可用的 wifi 网络。用户选择任何网络并提供密码,然后我将添加该网络并启用它来连接它。这是代码
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)
上面的代码工作正常。但问题场景是,
- 我正在安装应用程序并选择要连接的网络。例如“wifiX”。它已连接。
- 现在进入安卓设备中的设置->Wifi。这里只有一个 SSID 为“wifiX”(我添加的)的 wifi 显示。
- 然后我卸载应用程序并重新安装相同的应用程序并执行相同的步骤以连接“wifiX”。它正在连接到选定的 wifi。但现在我的 android 设备设置在 wifi 列表中显示两个具有相同 SSID“wifiX”的实例。
注意:正如您在代码中看到的,在添加选定的网络之前,我将删除所有具有相同选定 ssid 的网络。
根据 android 文档 Android 6.0 Changes documentation ,我们无法删除由另一个应用程序创建的 wifi 配置文件。
但就我而言,wifi 是由同一个应用程序创建的。
有人可以帮忙吗?
提前致谢。
【问题讨论】:
标签: android wifi wifimanager