2

我有以下方法:

public static bool IsNetworkConnected()
{
    ConnectionProfile InternetConnectionProfile = NetworkInformation.GetInternetConnectionProfile();
    IReadOnlyList<ConnectionProfile> connectionProfile = NetworkInformation.GetConnectionProfiles();
    if (InternetConnectionProfile == null)
        return false;
    else
        return true;
}

当我以典型方式(通过 LAN 电缆或 Wi-Fi)连接到互联网时,它工作正常。当我使用我的 3G USB 调制解调器时,它返回 false(InternectConnectionProfile为 null)。这是为什么?我该如何解决?

4

3 回答 3

4

您可以考虑在 Internet 上 ping 一个服务器。这不是您问题的 100% 答案,但从不同的角度来看可能会有所帮助。

using System.Net;
using System.Net.NetworkInformation;

using (Ping Packet = new Ping()) 
{
    if (Packet.Send(IPAddress.Parse(IP), 1000, new byte[] { 0 }).Status ==   IPStatus.Success))
    {
       // ...
    }
}
于 2012-08-01T10:27:11.510 回答
2

尝试

public static bool IsConnectedToInternet()
{
        ConnectionProfile connectionProfile = NetworkInformation.GetInternetConnectionProfile();
        return (connectionProfile!=null && connectionProfile.GetNetworkConnectivityLevel() == NetworkConnectivityLevel.InternetAccess);
}
于 2012-11-29T12:06:21.677 回答
1

这可能会对您有所帮助 http://social.msdn.microsoft.com/Forums/en-US/winappswithhtml5/thread/a7ba014c-3a31-4ff3-ba10-0c835305828b/

于 2012-08-01T10:21:28.817 回答