为什么NetworkInterface.GetIsNetworkAvailable()方法总是返回true,当我在我的Windows Phone 7设备上调试它?

时间:2012-07-29 02:04:21

标签: windows-phone-7 networking

为什么NetworkInterface.GetIsNetworkAvailable()方法总是返回true,当我在我的Windows Phone 7设备上调试它?不是模拟器时,是否确定“NetworkInterface.NetworkInterfaceType == NetworkInterface.None”表示设备无法获取网络访问?如何检测设备是否连接了具有intenert访问权限的网络?我试过这个链接Zune-Detection-and-Network-Awareness,但是NetworkInterface.GetIsNetworkAvailable()方法总是返回true,这让我很失望。谢谢你的帮助。

1 个答案:

答案 0 :(得分:3)

阅读该方法的文档。这是MSDN has to say

  

如果有任何网络,则认为网络连接可用   interface标记为“up”,不是环回或隧道接口。

     

在许多情况下,设备或计算机未连接   一个有用的网络,但仍然被认为是可用的    GetIsNetworkAvailable 将返回 true 。例如,如果设备   运行应用程序连接到无线网络   需要代理,但未设置代理, GetIsNetworkAvailable 将   返回 true GetIsNetworkAvailable 的另一个示例将返回    true 是指应用程序是否在已连接的计算机上运行   到集线器或路由器丢失上游的集线器或路由器   连接。

通常,您可以说此方法通常容易出错。我建议采用失败请求的方法 - 有几个URL来测试并检查HTTP / DNS解析请求是否通过。如果其中一些通过 - 有一个连接。如果一切都失败了 - 很有可能你没有联系。

Here is a sample