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

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

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

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

دامنه توسعه‌دهندگان گوگل پلی

برای برنامه‌هایی که توسط فروشگاه گوگل پلی نصب می‌شوند، API شناسه مجموعه برنامه، شناسه‌ای را برمی‌گرداند که به مجموعه‌ای از برنامه‌های منتشر شده تحت همان حساب توسعه‌دهنده گوگل پلی محدود می‌شود.

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

دامنه برنامه

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

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

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

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

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

برنامه شما باید از SDK برای بازیابی مقدار ID در هر زمان که نیاز باشد، استفاده کند.

SDK مربوط به شناسه مجموعه برنامه را به برنامه خود اضافه کنید.

قطعه کد زیر نمونه‌ای از یک فایل build.gradle را نشان می‌دهد که از کتابخانه‌ی app set ID استفاده می‌کند:

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

قطعه کد نمونه زیر نشان می‌دهد که چگونه می‌توانید شناسه مجموعه برنامه را به صورت غیرهمزمان با استفاده از 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، به شناسه منحصر به فرد جهانی مراجعه کنید.