DeviceNetworkInformation.IsNetworkAvailable有多可靠?

How reliable is DeviceNetworkInformation.IsNetworkAvailable?

我有一个 Windows Phone 8 应用程序,它很稳定并且已经发布了很长一段时间了。一些用户报告了我无法重现的奇怪行为。但是,如果这些特定设备报告 DeviceNetworkInformation.IsNetworkAvailable 为真,而实际上该应用程序无法访问在线数据,那么所报告的奇怪行为就有意义了。

DeviceNetworkInformation.IsNetworkAvailable可靠吗?或者也许我应该检查其他内容以可靠地确定该应用程序是否可以访问在线数据?

在我的例子中,有两个不同的功能受到影响 - 检查产品许可证是否存在,以及确定地图控件是否在线。两项检查都使用 DeviceNetworkInformation.IsNetworkAvailable.

用户报告的事件似乎很少见,但对受影响的用户来说是持久的。

如果用户已连接到 Wifi 或已打开移动数据,

DeviceNetworkInformation.IsNetworkAvailable 将导致 true。这并不能保证 Wifi 连接 phone 到互联网。或者在移动互联网的情况下,phone 可以连接到 2G 网络,这有时不足以连接到服务或获取大量数据。

作为一种做法,使用 DeviceNetworkInformation.IsNetworkAvailable 作为访问的主要检查。但不要完全依赖它。同时注册 DeviceNetworkInformation.NetworkAvailabilityChanged 事件以检查网络状态是否在您的代码为 运行.

时发生变化

有关参考和更多详细信息,请查看 this article