如何在UWP应用程序中打开Wi-Fi电源?

时间:2016-06-22 19:27:14

标签: wifi uwp

我想在我的uwp应用程序中打开Wi-Fi电源。 怎么打开它?

2 个答案:

答案 0 :(得分:2)

在UWP上,您应询问用户启用WiFi。或任何其他设备。 最佳做法是通过URI Launcehr将其导航至WiFi设置以启用它。

await Launcher.LaunchUriAsync(new Uri("ms-settings:network-wifi"));

如果启用了WiFi,则可以从Windows.Devices.WiFi.WiFiAdapter访问它。

但在此之前,您必须将所需的设备功能添加到 Package.appxmanifest 文件 - 右键单击​​文件 - >打开 - > XML(文本)编辑器)并在下面添加设备功能:

<Capabilities>
   <Capability Name="internetClient" />
    <!-- Add the capability here -->
    <DeviceCapability Name="wifiControl" />
</Capabilities>

然后您可以通过编程方式访问WiFi适配器:

var access = await Windows.Devices.WiFi.WiFiAdapter.RequestAccessAsync();
if(access == Windows.Devices.WiFi.WiFiAccessStatus.Allowed)
{
    var result = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(
        Windows.Devices.WiFi.WiFiAdapter.GetDeviceSelector());
    if(result.Count >= 1)
    {
        Windows.Devices.WiFi.WiFiAdapter firstAdapter = 
            await Windows.Devices.WiFi.WiFiAdapter.FromIdAsync(result[0].Id);
        await firstAdapter.ScanAsync();
    }
}

更多:here

答案 1 :(得分:1)

通常,UWP应用程序无权更改可能会干扰其他正在运行的应用程序的全局设置或设置。如果要检测网络状态,可以使用类NetworkInformation执行此操作。 OEM和运营商可以控制设备无线电,但其他开发人员无法使用。

也就是说,对于那些有访问权限的人来说,WiFiAdapter类允许枚举和编程连接或断开设备中的所有WiFi适配器。适配器使用FindAllAdaptersAsync进行枚举。调用此方法需要wifiControl功能。名称空间Windows.Devices.Radios中还有一些与无线电相关的功能。

根据您用于开发的帐户类型,对某些API的访问受到限制。有关详细信息,请参阅Microsoft的documentation on Account Types