android - 无法删除由同一应用程序以编程方式创建的 Wi-Fi 配置文件
问题描述
我有一个使用 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”。它的连接。
- 现在转到Android设备中的设置-> Wifi。这里只有一个 SSID 为“wifiX”(由我添加)的 wifi 显示。
- 然后我卸载应用程序并重新安装相同的应用程序并执行相同的步骤以连接“wifiX”。它正在连接到选定的 wifi。但现在我的 android 设备设置在 wifi 列表中显示两个具有相同 SSID“wifiX”的实例。
注意:正如您在代码中看到的,在添加选定的网络之前,我将删除所有具有相同选定 ssid 的网络。
根据 android 文档Android 6.0 Changes 文档,我们无法删除由另一个应用程序创建的 wifi 配置文件。
但就我而言,wifi 是由同一个应用程序创建的。
有人可以帮忙吗?
提前致谢。
解决方案
注意:
var existingWifiConfig = configuredNetworksList.Where(r => r.Ssid == wifiConfig.Ssid).ToArray();
//should be SSID, not Ssid.
医生在这里。
推荐阅读
- git - git rebase 后我无法删除的文件
- sql - TSQL:在动态 SQL 中使用“输出”子句
- python - 当我激活覆盆子 gpio 时向客户端发送 json 响应
- reactjs - react redux mapStateToProps - 正确的道具没有进入组件
- c# - 使用 linq 使用项目修改更新列表
- linux - 如何从 struct pci_dev 获取总线/设备/编号?
- django - 如何在过滤器上使用注释而不是循环
- lua - 在haproxy中调用lua响应503
- javascript - SyntaxError: Unexpected token : 在 TypeScript 中使用 Aurelia 运行玩笑测试时
- python - 如何从同级 __init__.py 导入?