【问题标题】:How reliable is DeviceNetworkInformation.IsNetworkAvailable?DeviceNetworkInformation.IsNetworkAvailable 的可靠性如何?
【发布时间】:2015-07-21 14:17:06
【问题描述】:

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

DeviceNetworkInformation.IsNetworkAvailable 可靠吗?或者我应该检查其他东西以可靠地确定应用是否可以访问在线数据?

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

用户报告的事件似乎非常罕见,但对受影响的用户来说是持续存在的。

【问题讨论】:

  • 请记住 - 仅仅因为在您访问此 API 时网络可用,并不意味着您一定可以假设您能够访问 特定 端点(并且它将能够成功地完成其工作)。即使在您开始对答案采取行动之前,您也不能假设网络仍处于相同状态。这就是为什么我认为这些 API 几乎毫无意义 - 网络和远程服务器不受您的程序控制,并且随时可能发生更改/故障。

标签: c# windows-phone-8 network-connection


【解决方案1】:

DeviceNetworkInformation.IsNetworkAvailable 如果用户连接到 Wifi 或打开了移动数据,则结果为 true。这并不能保证 Wifi 正在将手机连接到互联网。或者在移动互联网的情况下,手机可以连接到 2G 网络,这有时不足以连接到服务或获取大量数据。

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

如需参考和更多详情,请查看this article

【讨论】:

    猜你喜欢
    • 2012-05-19
    • 2011-05-05
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    相关资源
    最近更新 更多