Freigeben über


Abrufen von Lizenzinformationen zu Apps und Add-Ons

In diesem Artikel wird veranschaulicht, wie Methoden der StoreContext-Klasse im Windows.Services.Store Namespace verwendet werden, um Lizenzinformationen für die aktuelle App und ihre Add-Ons abzurufen. Mit diesen Informationen können Sie beispielsweise ermitteln, ob die Lizenzen für die App oder ihre Add-Ons aktiv sind oder ob sie Testlizenzen sind.

Hinweis

Der Windows.Services.Store-Namespace wurde in der Version 1607 von Windows 10 eingeführt und kann ausschließlich in Projekten verwendet werden, die auf Windows 10 Anniversary Edition (Build 14393 der Version 10.0) oder ein späteres Release in Visual Studio ausgelegt ist. Wenn Ihre App auf eine frühere Version von Windows 10 ausgerichtet ist, müssen Sie den Namespace Windows.ApplicationModel.Store anstelle von Windows.Services.Store verwenden. Weitere Informationen finden Sie in diesem Artikel.

Voraussetzungen

Für dieses Beispiel ist Folgendes erforderlich:

  • Ein Visual Studio-Projekt für eine UWP-App (Universelle Windows-Plattform), die auf Windows 10 Anniversary Edition (Build 14393 der Version 10.0) oder ein späteres Release ausgerichtet ist
  • Erstellen einer App-Übermittlung in Partner Center: Diese App wurde im Store veröffentlicht. Sie können die App optional so konfigurieren, dass sie während der Testphase nicht im Store auffindbar ist. Weitere Informationen finden Sie im Testleitfaden.
  • Wenn Sie Lizenzinformationen für ein Add-On für die App erhalten möchten, müssen Sie auch das Add-On im Partner Center erstellen.

Der Code in diesem Beispiel geht von Folgendem aus:

  • Der Code wird im Kontext einer Seite ausgeführt, die eine ProgressRing-Klasse mit dem Namen workingProgressRing und eine TextBlock-Klasse mit dem Namen textBlock enthält. Diese Objekte werden verwendet, um anzugeben, dass ein asynchroner Vorgang auftritt, und um die entsprechenden Ausgabemeldungen anzuzeigen.
  • Die Codedatei verfügt über eine using-Anweisung für den Windows.Services.Store-Namespace.
  • Die App ist eine Einzelbenutzer-App, die nur im Kontext des Benutzers ausgeführt wird, der die App gestartet hat. Weitere Informationen finden Sie unter In-App-Käufe und Testversionen.

Hinweis

Wenn Sie über eine Desktopanwendung verfügen, die die Desktop-Brücke verwendet, müssen Sie möglicherweise zusätzlichen, in diesem Beispiel nicht aufgeführten Code hinzufügen, um das StoreContext-Objekt zu konfigurieren. Weitere Informationen finden Sie unter Verwenden der StoreContext-Klasse in einer Desktopanwendung, die die Desktop-Brücke verwendet.

Code-Beispiel

Verwenden Sie die GetAppLicenseAsync-Methode , um Lizenzinformationen für die aktuelle App abzurufen. Dies ist eine asynchrone Methode, die ein StoreAppLicense -Objekt zurückgibt, das Lizenzinformationen für die App bereitstellt, einschließlich Eigenschaften, die angeben, ob der Benutzer derzeit über eine gültige Lizenz für die Verwendung der App (IsActive) verfügt und ob die Lizenz für eine Testversion (IsTrial) ist.

Verwenden Sie die AddOnLicenses-Eigenschaft des StoreAppLicense-Objekts , um auf die Lizenzen für dauerhafte Add-Ons der aktuellen App zuzugreifen, für die der Benutzer über eine Berechtigung zur Verwendung verfügt. Diese Eigenschaft gibt eine Auflistung von StoreLicense-Objekten zurück, die die Add-On-Lizenzen darstellen.

private StoreContext context = null;

public async void GetLicenseInfo()
{
    if (context == null)
    {
        context = StoreContext.GetDefault();
        // If your app is a desktop app that uses the Desktop Bridge, you
        // may need additional code to configure the StoreContext object.
        // For more info, see https://aka.ms/storecontext-for-desktop.
    }

    workingProgressRing.IsActive = true;
    StoreAppLicense appLicense = await context.GetAppLicenseAsync();
    workingProgressRing.IsActive = false;

    if (appLicense == null)
    {
        textBlock.Text = "An error occurred while retrieving the license.";
        return;
    }

    // Use members of the appLicense object to access license info...

    // Access the valid licenses for durable add-ons for this app.
    foreach (KeyValuePair<string, StoreLicense> item in appLicense.AddOnLicenses)
    {
        StoreLicense addOnLicense = item.Value;
        // Use members of the addOnLicense object to access license info
        // for the add-on.
    }
}

Eine vollständige Beispielanwendung finden Sie im Store-Beispiel.