【发布时间】:2015-07-27 06:41:08
【问题描述】:
我想扫描并列出可用的 WIFI 接入点,并允许用户从 Windows 应用商店应用上的自定义界面连接到一个。
我知道 WiFi 原生 API,但在 Windows 商店应用程序中无法访问。
我可以为此使用 WifiDirect API 吗?
【问题讨论】:
标签: c# network-programming windows-store-apps wifi wifi-direct
我想扫描并列出可用的 WIFI 接入点,并允许用户从 Windows 应用商店应用上的自定义界面连接到一个。
我知道 WiFi 原生 API,但在 Windows 商店应用程序中无法访问。
我可以为此使用 WifiDirect API 吗?
【问题讨论】:
标签: c# network-programming windows-store-apps wifi wifi-direct
对于 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);
}
【讨论】: