web-dev-qa-db-ja.com

Windows 10 UWP-現在のインターネット接続がWifiかCellularかを検出しますか?

Windows 10 UWPアプリで、現在のインターネット接続がWifiかCellularかを検出するにはどうすればよいですか?

20
Slakbal

UWPでは、IsWlanConnectionProfileまたはIsWwanConnectionProfileプロパティを使用してネットワーク接続を確認できます。

例は次のとおりです。

var temp = Windows.Networking.Connectivity.NetworkInformation.GetInternetConnectionProfile();

if (temp.IsWlanConnectionProfile)
{
     // its wireless
}else if (temp.IsWwanConnectionProfile)
{
     // its mobile
}

これがお役に立てば幸いです。

23
davemsdevsa

(他の人が言及している)接続を取得するだけでなく、従量制接続をより適切に処理することもできます。

従量制ネットワークのコスト制約を管理する方法

switch (connectionCost.NetworkCostType)
{
    case NetworkCostType.Unrestricted:
        //
        break;
    case NetworkCostType.Fixed:
        //
        break;
    case NetworkCostType.Variable:
        //
        break;
    case NetworkCostType.Unknown:
        //
        break;
    default:
        //
        break;
}

GitHubのネットワークデモ を参照してください。

if (connectionCost.Roaming || connectionCost.OverDataLimit)
{
    Cost = NetworkCost.OptIn;
    Reason = connectionCost.Roaming
        ? "Connection is roaming; using the connection may result in additional charge."
        : "Connection has exceeded the usage cap limit.";
}
else if (connectionCost.NetworkCostType == NetworkCostType.Fixed
    || connectionCost.NetworkCostType == NetworkCostType.Variable)
{
    Cost = NetworkCost.Conservative;
    Reason = connectionCost.NetworkCostType == NetworkCostType.Fixed
        ? "Connection has limited allowed usage."
        : "Connection is charged based on usage. ";
}
else
{
    Cost = NetworkCost.Normal;
    Reason = connectionCost.NetworkCostType == NetworkCostType.Unknown
        ? "Connection is unknown"
        : "Connection cost is unrestricted";
}
10
Igor Ralic