Bagikan melalui


Mendapatkan info lisensi untuk aplikasi dan add-on

Artikel ini menunjukkan cara menggunakan metode kelas StoreContext di namespace Windows.Services.Store untuk mendapatkan info lisensi untuk aplikasi saat ini dan add-on-nya. Misalnya, Anda dapat menggunakan info ini untuk menentukan apakah lisensi untuk aplikasi atau add-onnya aktif, atau jika mereka adalah lisensi uji coba.

Catatan

Namespace Windows.Services.Store diperkenalkan di Windows 10, versi 1607, dan hanya dapat digunakan dalam proyek yang menargetkan Windows 10 Anniversary Edition (10.0; Build 14393) atau rilis yang lebih baru di Visual Studio. Jika aplikasi Anda menargetkan versi Windows 10 yang lebih lama, Anda harus menggunakan namespace Windows.ApplicationModel.Store alih-alih namespace Windows.Services.Store . Untuk informasi selengkapnya, lihat artikel ini.

Prasyarat

Contoh ini memiliki prasyarat berikut:

  • Proyek Visual Studio untuk aplikasi Platform Windows Universal (UWP) yang menargetkan Windows 10 Anniversary Edition (10.0; Build 14393) atau rilis yang lebih baru.
  • Anda telah membuat pengiriman aplikasi di Pusat Mitra dan aplikasi ini diterbitkan di Toko. Anda dapat secara opsional mengonfigurasi aplikasi sehingga tidak dapat ditemukan di Store saat Anda mengujinya. Untuk informasi selengkapnya, lihat panduan pengujian kami.
  • Jika Anda ingin mendapatkan info lisensi untuk add-on untuk aplikasi, Anda juga harus membuat add-on di Pusat Mitra.

Kode dalam contoh ini mengasumsikan:

  • Kode berjalan dalam konteks Halaman yang berisi ProgressRing bernama workingProgressRing dan TextBlock bernama textBlock . Objek ini digunakan untuk menunjukkan bahwa operasi asinkron terjadi dan untuk menampilkan pesan output, masing-masing.
  • File kode memiliki pernyataan penggunaan untuk namespace Windows.Services.Store .
  • Aplikasi ini adalah aplikasi pengguna tunggal yang hanya berjalan dalam konteks pengguna yang meluncurkan aplikasi. Untuk informasi selengkapnya, lihat Pembelian dan uji coba dalam aplikasi.

Catatan

Jika Anda memiliki aplikasi desktop yang menggunakan Desktop Bridge, Anda mungkin perlu menambahkan kode tambahan yang tidak ditampilkan dalam contoh ini untuk mengonfigurasi objek StoreContext . Untuk informasi selengkapnya, lihat Menggunakan kelas StoreContext di aplikasi desktop yang menggunakan Desktop Bridge.

Contoh kode

Untuk mendapatkan info lisensi untuk aplikasi saat ini, gunakan metode GetAppLicenseAsync . Ini adalah metode asinkron yang mengembalikan objek StoreAppLicense yang menyediakan info lisensi untuk aplikasi, termasuk properti yang menunjukkan apakah pengguna saat ini memiliki lisensi yang valid untuk menggunakan aplikasi (IsActive) dan apakah lisensi tersebut untuk versi percobaan (IsTrial).

Untuk mengakses lisensi untuk add-on tahan lama dari aplikasi saat ini yang berhak digunakan pengguna, gunakan properti AddOnLicenses dari objek StoreAppLicense . Properti ini mengembalikan kumpulan objek StoreLicense yang mewakili lisensi add-on.

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

Untuk aplikasi sampel lengkap, lihat sampel Store.