0

次のスニペットを使用して、Windows Phone 8.0 デバイスでアクティブなネットワーク接続を取得しようとしています。Wifi とモバイルを無効にすると、接続されているインターフェイスが見つからないことが予想されますが、興味深いことに、「イーサネット」という名前のアダプターが接続されているようです。モバイル デバイスのイーサネット アダプタとは何ですか?

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;
    }
}

また、「1 つのアクティブなネットワーク」情報を取得する方法はありますか? たとえば、モバイルと Wi-Fi の両方が有効で接続されている場合、どちらが実際に使用されているかを知るにはどうすればよいですか?

ありがとう

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 に答える