我将Windows Phone 8 Silverlight转换为UWP,但我无法在UWP中找到与DeviceNetworkInformation.NetworkAvailabilityChanged事件等效的内容
我知道在UWP上我们必须使用ConnectionProfile来获取有关用户连接的信息(Wifi,3G等等)
ConnectionProfile InternetConnectionProfile = NetworkInformation.GetInternetConnectionProfile();
但似乎没有事件可以检查Internet是否在ConnectionProfile对象中不可用。
有人知道如何在UWP中执行此操作吗?
由于
答案 0 :(得分:2)
到目前为止,UWP API中可能没有DeviceNetworkInformation.NetworkAvailabilityChanged Event的等价物。但我们可以通过将NetworkInformation.NetworkStatusChanged event与ConnectionProfile.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。