Compartir a través de


Obtener información de licencia para aplicaciones y complementos

En este artículo se muestra cómo usar métodos de la clase StoreContext en el espacio de nombres Windows.Services.Store para obtener información de licencia para la aplicación actual y sus complementos. Por ejemplo, puedes usar esta información para determinar si las licencias de la aplicación o sus complementos están activas o si son licencias de prueba.

Nota

El espacio de nombres Windows.Services.Store se introdujo en Windows 10, versión 1607, y solo se puede usar en proyectos que tienen como destino Windows 10 Anniversary Edition (10.0; Compilación 14393) o una versión posterior en Visual Studio. Si la aplicación está destinada a una versión anterior de Windows 10, debes usar el espacio de nombres Windows.ApplicationModel.Store en lugar del espacio de nombres Windows.Services.Store. Para obtener más información, consulte este artículo.

Requisitos previos

Este ejemplo tiene los siguientes requisitos previos:

  • Un proyecto de Visual Studio para una aplicación de Plataforma universal de Windows (UWP) destinada a Windows 10 Anniversary Edition (10.0; Compilación 14393) o una versión posterior.
  • Has creado un envío de aplicación en el Centro de partners y esta aplicación se publica en la Tienda. Opcionalmente, puedes configurar la aplicación para que no se pueda detectar en la Tienda mientras la prueba. Para obtener más información, consulte nuestra guía de pruebas.
  • Si quieres obtener información de licencia para un complemento para la aplicación, también debes crear el complemento en el Centro de partners.

El código de este ejemplo supone que:

  • El código se ejecuta en el contexto de una página que contiene un elemento ProgressRing denominado workingProgressRing y un elemento TextBlock denominado textBlock. Estos objetos se usan para indicar que se está produciendo una operación asincrónica y para mostrar mensajes de salida, respectivamente.
  • El archivo de código tiene una instrucción using para el espacio de nombres Windows.Services.Store.
  • La aplicación es una de usuario único que se ejecuta solamente en el contexto del usuario que la inició. Para obtener más información, consulta Pruebas y compras desde la aplicación.

Nota

Si tienes una aplicación de escritorio que usa el Puente de dispositivo de escritorio, es posible que tengas que agregar código adicional que no se muestra en este ejemplo para configurar el objeto StoreContext. Para obtener más información, consulta Uso de la clase StoreContext en una aplicación de escritorio que usa el Puente de escritorio.

Ejemplo de código

Para obtener información de licencia para la aplicación actual, usa el método GetAppLicenseAsync. Se trata de un método asincrónico que devuelve un objeto StoreAppLicense que proporciona información de licencia para la aplicación, incluidas las propiedades que indican si el usuario tiene actualmente una licencia válida para usar la aplicación (IsActive) y si la licencia es para una versión de prueba (IsTrial).

Para acceder a las licencias de complementos duraderos de la aplicación actual para la que el usuario tiene derecho a usar, use la propiedad AddOnLicenses del objeto StoreAppLicenses . Esta propiedad devuelve una colección de objetos StoreLicense que representan las licencias de complementos.

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

Para obtener una aplicación de ejemplo completa, consulta la muestra de la Tienda.