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 tiene como destino una versión anterior de Windows 10, debe usar el espacio de nombres Windows.ApplicationModel.Store en lugar del espacio de nombres Windows.Services.Store. Para obtener más información, consulta este artículo.

Requisitos previos

Este ejemplo tiene los siguientes requisitos previos:

  • Un proyecto de Visual Studio para una aplicación para la Plataforma universal de Windows (UWP) que tiene como destinoWindows 10 Anniversary Edition (10.0; Compilación 14393) o una versión posterior.
  • Ha creado un envío de aplicación en el Centro de partners y esta aplicación se publica en la Store. Opcionalmente, puede configurar la aplicación para que no se pueda encontrar en la Store mientras la prueba. Para obtener más información, consulte nuestra guía para prueba.
  • Si quiere obtener información de licencia para un complemento para la aplicación, también debe crear el complemento en el Centro de partners.

En el código de este ejemplo se da por supuesto:

  • El código se ejecuta en el contexto de una Página que contiene un objeto ProgressRing denominado workingProgressRing y un objeto TextBlock denominado textBlock. Estos objetos se usan para indicar que se está produciendo una operación asincrónica y 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, consulte Pruebas y compras desde la aplicación.

Nota:

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

Ejemplo de código

Para obtener información de licencia para la aplicación actual, use el método GetAppLicenseAsync . Este es 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 complemento.

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, consulte el ejemplo de Store.