UWP上是否存在等效的DeviceNetworkInformation.NetworkAvailabilityChanged事件?

时间:2016-10-10 23:18:41

标签: networking windows-phone connection uwp

我将Windows Phone 8 Silverlight转换为UWP,但我无法在UWP中找到与DeviceNetworkInformation.NetworkAvailabilityChanged事件等效的内容

我知道在UWP上我们必须使用ConnectionProfile来获取有关用户连接的信息(Wifi,3G等等)

ConnectionProfile InternetConnectionProfile = NetworkInformation.GetInternetConnectionProfile();

但似乎没有事件可以检查Internet是否在ConnectionProfile对象中不可用。

有人知道如何在UWP中执行此操作吗?

由于

1 个答案:

答案 0 :(得分:2)

到目前为止,UWP API中可能没有DeviceNetworkInformation.NetworkAvailabilityChanged Event的等价物。但我们可以通过将NetworkInformation.NetworkStatusChanged eventConnectionProfile.GetNetworkConnectivityLevel method相结合来实现这一目标。

<{3}}中的

参考备注

  

确定网络连接级别的建议过程是在ConnectionProfile.GetNetworkConnectivityLevel类上注册NetworkStatusChanged事件的处理程序。收到有关网络状态更改的通知后,通过调用NetworkInformation方法返回的配置文件上的 GetNetworkConnectivityLevel 方法获取新的连接级别。然后可以存储返回的网络连接级别以供以后在需要时使用。这也可以确保检查正确的GetInternetConnectionProfile

以下是一个简单的示例:

NetworkInformation.NetworkStatusChanged += (s) =>
{
    var profile = NetworkInformation.GetInternetConnectionProfile();
    var isInternetConnected = profile != null && profile.GetNetworkConnectivityLevel() == NetworkConnectivityLevel.InternetAccess;
};

您也可以将此封装到此博客中的事件中:ConnectionProfile