UWP-如何检查是否连接到Wifi网络

时间:2016-11-09 05:55:51

标签: c# uwp win-universal-app windows-10-universal

我想检查用户是否通过wifi连接,即使没有互联网访问,也知道它连接了哪个Ssid。 我尝试使用WlanConnectionProfileDetails类但是出现了一些错误。 任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:2)

很容易

1.在您的页面中声明这一点

private WiFiAdapter firstAdapter;
private string savedProfileName = null;

2.Populate it

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

3.将此功能添加到您的应用清单文件

    <DeviceCapability Name="wiFiControl" />

4.检查您的wifi连接到哪个网络

if (firstAdapter.NetworkAdapter.GetConnectedProfileAsync() != null)
            {
                var connectedProfile = await firstAdapter.NetworkAdapter.GetConnectedProfileAsync();
                if (connectedProfile != null && !connectedProfile.ProfileName.Equals(savedProfileName))
                {
                    savedProfileName = connectedProfile.ProfileName;
}

5.Here savedProfileName将使网络ssid连接。如果通过wifi连接,则connectedProfile.IsWlanConnectionProfile将为true 如果通过蜂窝网连接,connectedProfile.IsWwanConnectionProfile将为true 在此之后,您可以通过以下方法检查互联网:

public static bool IsInternet()
{
    ConnectionProfile connections = NetworkInformation.GetInternetConnectionProfile();
    bool internet = connections != null && connections.GetNetworkConnectivityLevel() == NetworkConnectivityLevel.InternetAccess;
    return internet;
}

希望它有所帮助。