So wird’s gemacht: Abrufen von Netzwerkverbindungsinformationen (HTML)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation]

In diesem Thema wird erläutert, wie Sie mit Klassen im Windows.Networking.Connectivity-Namespace Verbindungsdetails und Nutzungsinformationen für Netzwerkverbindungen auf einem Gerät abrufen.

Voraussetzungen

Die folgenden Beispiele verwenden JavaScript und basieren auf dem Netzwerkinformationsbeispiel. Allgemeine Informationen zum Erstellen einer Windows-Runtime-App mit JavaScript finden Sie unter Erstellen Ihrer ersten Windows-Runtime-App mit JavaScript.

Was ist ein Verbindungsprofil?

Ein ConnectionProfile stellt eine einzelne Netzwerkverbindung auf einem Gerät dar. Mit den Informationen in einem ConnectionProfile können Sie den aktuellen Verbindungsstatus bestimmen, die Verwendung von Daten nachverfolgen und den Netzwerkadapter identifizieren, mit dem die Verbindung hergestellt wird. Durch die Registrierung für die Benachrichtigung über Änderungen der Eigenschaften eines ConnectionProfile kann die Windows-Runtime-App ihr Verhalten an Änderungen in einer Netzwerkumgebung anpassen. Weitere Informationen zur Registrierung für diese Benachrichtigungen finden Sie unter So wird's gemacht: Verwalten von Netzwerkverbindungsereignissen und Änderungen der Verfügbarkeit.

In spezifischeren Szenarien, z. B. bei verbundenen Apps für mobile Geräte, die häufig Roaming nutzen und in getakteten Netzwerken verwendet werden, stellt ein ConnectionProfile Kosten- und Datentarifinformationen bereit, durch die unerwartete Gebühren von Dienstanbietern vermieden werden können. Weitere Informationen finden Sie unter So wird's gemacht: Verwalten von Kosteneinschränkungen in getakteten Netzwerken.

Jedes ConnectionProfile bietet Zugriff auf die folgenden Verbindungsinformationen:

Daten Bereitgestellt von Beschreibung

Verbindungskosten

ConnectionCost

Informationen den Kosten, einschließlich Datenbegrenzungen und Roaminginformationen.

Kostentyp

NetworkCostType

Kostentyp des aktuell für die Verbindung verwendeten Netzwerks.

Datenplanstatus und -nutzung

DataPlanStatus, DataPlanUsage

Spezifische Nutzungsinformationen für den Datentarif, der mit der Verbindung verknüpft ist.

Lokale Nutzung

NetworkUsage

Lokale Nutzungsinformationen zur Verbindung.

Netzwerkadapter

NetworkAdapter

Netzwerkadapter, der die Konnektivität für die Verbindung bereitstellt.

WLAN- und WWAN-Verbindungseigenschaften

WlanConnectionProfileDetails

WwanConnectionProfileDetails

Stellt zusätzliche für WLAN- und WWAN-Verbindungsprofile spezifische Informationen bereit.

 

Abrufen von Verbindungsprofilen

Definieren Sie zunächst eine Instanz der NetworkInformation-Klasse, die die von Ihrer App zum Abrufen eines ConnectionProfile verwendeten Methoden definiert. Definieren Sie außerdem eine Instanz der NetworkCostType-Klasse, die die möglichen Netzwerkkostentypen für ein ConnectionProfile definiert.

var networkInfo = Windows.Networking.Connectivity.NetworkInformation;
var networkCostInfo = Windows.Networking.Connectivity.NetworkCostType;

Die NetworkInformation-Klasse definiert zwei Methoden zum Abrufen eines ConnectionProfile. Muss nur das zugeordnete Profil der Internetverbindung zurückgegeben werden, verwenden Sie die getInternetConnectionProfile-Methode.

Beim Aufrufen der meisten asynchronen Netzwerkmethoden müssen Sie Code zum Behandeln von Ausnahmen schreiben. Zudem können die Methoden im Windows.Networking.Connectivity-Namespace, die ein ConnectionProfile abrufen, Ausnahmen auslösen. Ihr Ausnahmehandler kann detailliertere Informationen zur Ursache abrufen, um die Ausnahme besser verstehen und entsprechende Entscheidungen treffen zu können. Weitere Informationen finden Sie unter So wird's gemacht: Behandeln von Ausnahmen in Netzwerk-Apps.

function displayInternetConnectionProfileInfo() {
    try {
        // get the ConnectionProfile that is currently used to connect to the Internet
        var internetProfile = networkInfo.getInternetConnectionProfile();
        mySample.displayStatus(GetConnectionProfileInfo(internetProfile));
    }
    catch (e) {
        mySample.displayError("Exception Caught: " + e + "\n\r");
    }
}

Sollen Profile für alle Verbindungen (einschließlich der Internetverbindung) abgerufen werden, verwenden Sie die getConnectionProfiles-Methode.

function displayConnectionProfileList() {
  var profileList = "";
  try {
      var ConnectionProfiles = networkInfo.getConnectionProfiles();
      if (ConnectionProfiles.length != 0) {
          for (var i = 0; i < ConnectionProfiles.length; i++) {

              //Display Connection profile info for each profile
              profileList += GetConnectionProfileInfo(ConnectionProfiles[i]);
              profileList += "-----------------------------------------\n\r";
          }
          mySample.displayStatus(profileList);
          }
          else {
              mySample.displayStatus("No profiles found");
          }
      }

      catch (e) {
         mySample.displayError("Exception Caught: " + e + "\n\r");
      }
}

Zugreifen auf Informationen aus einem Verbindungsprofil

Der folgende Beispielcode ruft Methoden für das ConnectionProfile auf, um Informationen zum Netzwerkverbindungsstatus, zu den Kosten und zur Datentarifnutzung abzurufen.

function getConnectionProfileInfo(connectionProfile) {

    if (connectionProfile == null) {
        return "";
    }

    try {
        var returnString = "ProfileName: " + connectionProfile.profileName + "\n\r";

        switch (connectionProfile.getNetworkConnectivityLevel()) {
            case networkConnectivityInfo.none:
                returnString += "Connectivity Level: None\n\r";
                break;
            case networkConnectivityInfo.localAccess:
                returnString += "Connectivity Level: Local Access\n\r";
                break;
            case networkConnectivityInfo.constrainedInternetAccess:
                returnString += "Connectivity Level: Constrained Internet Access\n\r";
                break;
            case networkConnectivityInfo.internetAccess:
                returnString += "Connectivity Level: Internet Access\n\r";
                break;
        }

        //Display Connection cost info
        returnString += "Connection Cost Information:\n\r";
        returnString += "===============\n\r";
        var connectionCost = connectionProfile.getConnectionCost();
        returnString += "Cost Type: " + GetCostType(connectionCost.networkCostType) + "\n\r";
        returnString += "Roaming: " + connectionCost.roaming + "\n\r";
        returnString += "Over Datalimit: " + connectionCost.overDataLimit + "\n\r";
        returnString += "Approaching Datalimit: " + connectionCost.approachingDataLimit + "\n\r";

        //Display Dataplan status info
        returnString += "Dataplan Status Information:\n\r";
        returnString += "===============\n\r";
        var dataPlanStatus = connectionProfile.getDataPlanStatus();
        if (dataPlanStatus.dataPlanUsage != null) {
            returnString += "Usage In Megabytes: " + dataPlanStatus.dataPlanUsage.megabytesUsed + "\n\r";
            returnString += "Last Sync Time: " + dataPlanStatus.dataPlanUsage.lastSyncTime + "\n\r";
        }
        else {
            returnString += "Dataplan Usage: " + "Not Defined" + "\n\r";
        }

        if (dataPlanStatus.InboundBitsPerSecond != null) {
            returnString += "Inbound Bits Per Second: " + dataPlanStatus.InboundBitsPerSecond + "\n\r";
        }
        else {
            returnString += "Inbound Bits Per Second: " + "Not Defined" + "\n\r";
        }

        if (dataPlanStatus.OutboundBitsPerSecond != null) {
            returnString += "Outbound Bits Per Second: " + dataPlanStatus.OutboundBitsPerSecond + "\n\r";
        }
        else {
            returnString += "Outbound Bits Per Second: " + "Not Defined" + "\n\r";
        }

        if (dataPlanStatus.dataLimitInMegabytes != null) {
            returnString += "Data Limit In Megabytes: " + dataPlanStatus.dataLimitInMegabytes + "\n\r";
        }
        else {
            returnString += "Data Limit In Megabytes: " + "Not Defined" + "\n\r";
        }

        if (dataPlanStatus.nextBillingCycle != null) {
            returnString += "Next Billing Cycle: " + dataPlanStatus.nextBillingCycle + "\n\r";
        }
        else {
            returnString += "Next Billing Cycle: " + "Not Defined" + "\n\r";
        }

        if (dataPlanStatus.maxDownloadFileSizeInMegabytes != null) {
            returnString += "Maximum Download File Size in Megabytes: " + dataPlanStatus.maxDownloadFileSizeInMegabytes + "\n\r";
        }
        else {
            returnString += "Maximum Download File Size in Megabytes: " + "Not Defined" + "\n\r";
        }
            returnString += "Cost Based Suggestions: " + CostBasedSuggestions(connectionCost) + "\n\r";
        }

    catch (e) {
        mySample.displayError("Exception Caught: " + e + "\n\r");
    }

    return returnString;
}

Zusammenfassung

In diesem Thema wurde das Abrufen von Verbindungsprofilen und der darin enthaltenen Verbindungsinformationen behandelt. Die Verwendung dieser Informationen ist wichtig, um die richtigen Entscheidungen bezüglich der Verbindungseigenschaften Ihrer App zu treffen.

Weitere Richtlinien und bewährte Methoden zur Verwendung von Verbindungsinformationen, um das Verhalten einer App mit Netzwerkzugriff zu verwalten, finden Sie unter So wird's gemacht: Verwalten von Netzwerkverbindungsereignissen und Änderungen der Verfügbarkeit.

Verwandte Themen

Sonstige

Erstellen Ihrer ersten Windows-Runtime-App mit JavaScript

So wird's gemacht: Behandeln von Ausnahmen in Netzwerk-Apps

So wird's gemacht: Verwalten von Netzwerkverbindungsereignissen und Änderungen der Verfügbarkeit

So wird's gemacht: Verwalten von Kosteneinschränkungen in getakteten Netzwerken

So wird's gemacht: Abrufen von Netzwerkadapter- und Ortsinformationen

So wird's gemacht: Abrufen von Netzwerk-Verbindungsnutzungsdaten

Referenz

ConnectionProfile

DataPlanStatus

NetworkInformation

Windows.Networking.Connectivity

Beispiele

Netzwerkinformationsbeispiel

Hintergrundbeispiel für den Netzwerkstatus