شناسایی برنامه‌های تحت مالکیت توسعه‌دهنده

برای موارد استفاده‌ای مثل تجزیه‌وتحلیل یا جلوگیری از کلاهبرداری در دستگاهی خاص، ممکن است لازم باشد استفاده یا کنش‌ها را در مجموعه‌ای از برنامه‌های متعلق به سازمانتان همبسته کنید. خدمات Google Play گزینه‌ای سازگار با حریم خصوصی به‌نام شناسه مجموعه برنامه ارائه می‌دهد.

محدوده شناسه مجموعه برنامه

شناسه مجموعه برنامه می‌تواند یکی از دامنه‌های تعریف‌شده زیر را داشته باشد. برای تعیین اینکه یک شناسه خاص با کدام دامنه مرتبط است، getScope() را فراخوانی کنید.

گستره توسعه‌دهنده Google Play

برای برنامه‌هایی که توسط «فروشگاه Google Play» نصب شده‌اند، میانای برنامه‌سازی کاربردی شناسه مجموعه برنامه شناسه‌ای را برمی‌گرداند که به مجموعه برنامه‌های منتشرشده تحت همان حساب توسعه‌دهنده Google Play محدود شده است.

برای مثال، فرض کنید دو برنامه را تحت حساب توسعه‌دهنده Google Play خود منتشر می‌کنید و هر دو برنامه ازطریق فروشگاه Google Play روی یک دستگاه نصب شده‌اند. برنامه‌ها شناسه مجموعه برنامه یکسانی در آن دستگاه دارند. این شناسه یکسان است حتی اگر برنامه‌ها با کلیدهای مختلفی امضا شده باشند.

محدوده برنامه

در هریک از شرایط زیر، کیت توسعه نرم‌افزار شناسه مجموعه برنامه شناسه‌ای را برمی‌گرداند که برای خود برنامه فراخواننده در دستگاهی خاص منحصربه‌فرد است:

  • برنامه توسط نصب‌کننده‌ای غیراز «فروشگاه Google Play» نصب شده است.
  • خدمات Google Play نمی‌تواند حساب توسعه‌دهنده Google Play برنامه را تعیین کند.
  • برنامه در دستگاهی بدون خدمات Google Play نصب شده است.

به مقدار ذخیره‌شده شناسه مجموعه برنامه در حافظه نهان اتکا نکنید

تحت هریک از شرایط زیر، شناسه مجموعه برنامه برای مجموعه مشخصی از برنامه‌های نصب‌شده از «فروشگاه Google Play» در دستگاه می‌تواند بازنشانی شود:

  • گروه‌های برنامه‌ای که مقدار شناسه یکسانی را هم‌رسانی می‌کنند بیش‌از ۱۳ ماه است که به میانای برنامه‌سازی کاربردی «شناسه مجموعه برنامه» دسترسی نداشته‌اند.
  • آخرین برنامه از مجموعه برنامه‌های ارائه‌شده از دستگاه حذف نصب شده باشد.
  • کاربر دستگاه را بازنشانی کارخانه‌ای کند.

برنامه شما باید از کیت توسعه نرم‌افزار برای بازیابی مقدار شناسه در هر زمان که نیاز است استفاده کند.

افزودن کیت توسعه نرم‌افزار شناسه مجموعه برنامه به برنامه

تکه‌کد زیر نمونه‌ای از فایل build.gradle را نشان می‌دهد که از کتابخانه شناسه مجموعه برنامه استفاده می‌کند:

dependencies {
    implementation 'com.google.android.gms:play-services-appset:16.1.0'
}

قطعه نمونه زیر نشان می‌دهد که چگونه می‌توانید شناسه مجموعه برنامه را به‌صورت ناهمگام بااستفاده از Tasks API در خدمات Google Play بازیابی کنید:

کاتلین

val client = AppSet.getClient(applicationContext) as AppSetIdClient
val task: Task<AppSetIdInfo> = client.appSetIdInfo as Task<AppSetIdInfo>

task.addOnSuccessListener({
    // Determine current scope of app set ID.
    val scope: Int = it.scope

    // Read app set ID value, which uses version 4 of the
    // universally unique identifier (UUID) format.
    val id: String = it.id
})

جاوا

Context context = getApplicationContext();
AppSetIdClient client = AppSet.getClient(context);
Task<AppSetIdInfo> task = client.getAppSetIdInfo();

task.addOnSuccessListener(new OnSuccessListener<AppSetIdInfo>() {
    @Override
    public void onSuccess(AppSetIdInfo info) {
        // Determine current scope of app set ID.
        int scope = info.getScope();

      // Read app set ID value, which uses version 4 of the
      // universally unique identifier (UUID) format.
        String id = info.getId();
    }
});

برای اطلاعات بیشتر درباره قالب UUID، به شناسه منحصربه‌فرد جهانی مراجعه کنید.