0

我正在尝试使用以下代码段在 Windows Phone 8.0 设备上获得活动网络连接。当我禁用 Wifi 和 Mobile 时,我希望找不到连接的接口,但有趣的是,似乎连接了一个名为“以太网”的适配器。什么是移动设备上的以太网适配器?

foreach (NetworkInterfaceInfo networkInterfaceInfo in networkInterfaceList)
{
    if (networkInterfaceInfo.InterfaceState == ConnectState.Connected)
    {
        isConnected = true;
        if (networkInterfaceInfo.InterfaceType == NetworkInterfaceType.MobileBroadbandGsm
           || networkInterfaceInfo.InterfaceType == NetworkInterfaceType.MobileBroadbandCdma)
            isMobileConnected = true;
        else if (networkInterfaceInfo.InterfaceType == NetworkInterfaceType.Wireless80211)
            isWifiConnected = true;
    }
}

还有一种方法可以获得“一个活跃的网络”信息吗?例如,如果启用并连接了移动和 wifi,我怎么知道实际使用的是哪一个?

谢谢

4

2 回答 2

2

您可以找到带有NetworkAdapter类的网络类型。它具有属性IanaInterfaceType 要检查所有 IANA 接口,请转到此处

var profile = Windows.Networking.Connectivity.NetworkInformation.GetInternetConnectionProfile();
var interfaceType = profile.NetworkAdapter.IanaInterfaceType;

// 71 is WiFi & 6 is Ethernet(LAN)
if (interfaceType == 71 || interfaceType == 6) 
{
//TODO:
}
// 243 & 244 is 3G/Mobile
else if (interfaceType == 243 || interfaceType == 244)
{
 //TODO:
}

希望能帮助到你 :)

于 2014-06-17T09:54:48.120 回答
-1

尝试这个:

private void UpdateNetworkStatus()
{
    tbIsCellularDataEnabled.Text = (DeviceNetworkInformation.IsCellularDataEnabled) ? "Yes" : "No";
    tbIsNetworkAvailable.Text = (DeviceNetworkInformation.IsNetworkAvailable) ? "Yes" : "No";
    tbIsWiFiEnabled.Text = (DeviceNetworkInformation.IsWiFiEnabled) ? "Yes" : "No";
}

有关更多参考,您可以查看如何检测 Windows Phone 8 的网络更改

于 2014-06-17T10:45:22.413 回答