如何获取 wifi AP 列表并从 Windows 商店应用程序连接到一个 AP

Posted

技术标签:

【中文标题】如何获取 wifi AP 列表并从 Windows 商店应用程序连接到一个 AP【英文标题】:How do i get list of wifi AP and connect to one AP from Windows store app 【发布时间】:2015-07-27 06:41:08 【问题描述】:

我想扫描并列出可用的 WIFI 接入点,并允许用户从 Windows 应用商店应用上的自定义界面连接到一个。

我知道 WiFi 原生 API,但在 Windows 商店应用程序中无法访问。

我可以为此使用 WifiDirect API 吗?

【问题讨论】:

【参考方案1】:

对于 Windows 8.1:

您最好在 Windows 8.1 上使用 WiFi Direct。您的设备必须支持 Wifi Direct。 “您可以使用 Wi-Fi Direct 来枚举无线范围内的 Wi-Fi Direct 设备列表,然后使用 Wi-Fi Direct 设备在应用程序之间建立套接字连接。” 在此处查看完整示例: https://code.msdn.microsoft.com/windowsapps/WiFiDirectDevice-sample-59a6e5e0#content

对于 Windows 10: 您可以使用 Windows.Devices.WiFi.WiFiAdapter 在 Windows 应用商店应用程序中执行此操作。 确保在应用清单中设置功能:

 <DeviceCapability Name="wiFiControl" />

这是一个代码示例,它基本上可以解决问题,只需使用 ssid “MyNetworkSSID”连接到网络。

using Windows.Devices.WiFi;


    var access = await WiFiAdapter.RequestAccessAsync();
    var result = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(WiFiAdapter.GetDeviceSelector());
    if (result.Count >= 1)
    
// take first adapter
    nwAdapter = await WiFiAdapter.FromIdAsync(result[0].Id);
// scan for networks
    await nwAdapter.ScanAsync();
// find network with the correct SSID
var nw = nwAdapter.NetworkReport.AvailableNetworks.Where(y => y.Ssid.ToLower() == "MyNetworkSSID").FirstOrDefault();
// connect 
    await nwAdapter.ConnectAsync(nw, WiFiReconnectionKind.Automatic);
   

【讨论】:

恐怕只有 Windows 10 支持 Windows.Devices.WiFi。有没有办法可以在 Windows 8.1 上使用这个 API? 抱歉,没有意识到您说的是 W8.1。我编辑了我的答案。在 8.1 上,您不能使用 Windows.Devices.WiFi 命名空间。您必须直接使用 Wifi。 Daniel - nwAdapter.NetworkReport.AvailableNetworks.Where[...] 给我一个空值,并且尝试检查 AvailableNetworks 似乎没有给我任何有用的东西(我看不到网络)。你有我可以看看的工作示例解决方案吗?谢谢

以上是关于如何获取 wifi AP 列表并从 Windows 商店应用程序连接到一个 AP的主要内容,如果未能解决你的问题,请参考以下文章

NanoFramework 以 AP 模式扫描 wifi 网络

如何在 .net 中获取可用的 wifi AP 及其信号强度?

ESP32-C3入门教程 网络篇①——WiFi Scan 快速扫描附近AP无线热点

wifi定位中的指纹是啥意思呢?

如何通过java获取网络的无线AP的SSID?

swift 获取当前的WiFi AP信息