如何检查Windows Phone 8应用程序中的Internet连接可用性

use*_*874 12 c# network-connection windows-phone-8 windows-phone-8.1

我正在开发Windows Phone 8应用程序.在这个应用程序中,我必须连接到服务器以获取数据.

所以在连接到服务器之前,我想检查互联网连接是否可用于设备.如果互联网连接可用,那么我只会从服务器获取数据,否则我将显示错误消息.

请告诉我如何在Windows Phone 8中执行此操作.

jAC*_*jAC 13

NetworkInterface.GetIsNetworkAvailable() 返回NIC的状态.

根据状态,您可以通过使用以下方式询问是否建立了连接:

ConnectionProfile- 使用以下内容的Windows Phone 8.1类enum NetworkConnectivityLevel:

  • 没有
  • 本地访问
  • 互联网

这段代码应该可以解决问题.

bool isConnected = NetworkInterface.GetIsNetworkAvailable();
if (isConnected)
{
    ConnectionProfile InternetConnectionProfile = NetworkInformation.GetInternetConnectionProfile();
    NetworkConnectivityLevel connection = InternetConnectionProfile.GetNetworkConnectivityLevel();
    if (connection == NetworkConnectivityLevel.None || connection == NetworkConnectivityLevel.LocalAccess)
    {
        isConnected = false;
    }
}
if(!isConnected)
    await new MessageDialog("No internet connection is avaliable. The full functionality of the app isn't avaliable.").ShowAsync();
Run Code Online (Sandbox Code Playgroud)

  • 我不知道为什么,但在模拟器中,即使网络设置为无网络,此方法也始终为我返回true. (2认同)

Ram*_*esh 7

public static bool checkNetworkConnection()
{
    var ni = NetworkInterface.NetworkInterfaceType;

    bool IsConnected = false;
    if ((ni == NetworkInterfaceType.Wireless80211)|| (ni == NetworkInterfaceType.MobileBroadbandCdma)|| (ni == NetworkInterfaceType.MobileBroadbandGsm))
        IsConnected= true;
    else if (ni == NetworkInterfaceType.None)
        IsConnected= false;
    return IsConnected;
}
Run Code Online (Sandbox Code Playgroud)

调用此功能并检查互联网连接是否可用.

  • 当您连接到wifi并且网络未连接到Internet时,这不起作用. (5认同)