我想检查用户是否通过wifi连接,即使没有互联网访问,也知道它连接了哪个Ssid。 我尝试使用WlanConnectionProfileDetails类但是出现了一些错误。 任何帮助将不胜感激。谢谢。
答案 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;
}
希望它有所帮助。