تحديد التطبيقات التي يملكها مطوّر البرامج

بالنسبة إلى حالات الاستخدام، مثل الإحصاءات أو منع الاحتيال على جهاز معيّن، قد تحتاج إلى ربط الاستخدام أو الإجراءات ضمن مجموعة من التطبيقات التي تمتلكها مؤسستك. تقدّم خدمات Google Play خيارًا يراعي الخصوصية يُعرف باسم معرّف مجموعة التطبيقات.

نطاق معرّف مجموعة التطبيقات

يمكن أن يكون لمعرّف مجموعة التطبيقات أحد النطاقات المحدّدة التالية. لتحديد النطاق المرتبط بمعرّف معيّن، اتصل بـ getScope().

نطاق المطوّر على Google Play

بالنسبة إلى التطبيقات التي يتم تثبيتها من خلال "متجر Google Play"، تُعرِض واجهة برمجة التطبيقات App Set ID API معرّفًا على مستوى مجموعة التطبيقات المنشورة ضمن حساب المطوّر نفسه على Google Play.

على سبيل المثال، لنفترض أنّك نشرت تطبيقَين ضمن حساب المطوِّر الخاص بك على Google Play وتم تثبيت التطبيقَين على الجهاز نفسه من خلال "متجر Google Play". تتشارك التطبيقات رقم تعريف مجموعة التطبيقات نفسه على ذلك الجهاز. ويبقى المعرّف نفسه حتى إذا تم توقيع التطبيقات بمفاتيح مختلفة.

نطاق التطبيق

في أيّ من الحالات التالية، تُعرِض حزمة تطوير البرامج (SDK) لمعرّف مجموعة التطبيقات معرّفًا فريدًا للتطبيق المُطلِب نفسه على جهاز معيّن:

  • تم تثبيت التطبيق من خلال أداة تثبيت غير "متجر Google Play".
  • تعذّر على "خدمات Google Play" تحديد حساب المطوّر الخاص بالتطبيق على Google Play.
  • تم تثبيت التطبيق على جهاز لا يتضمّن "خدمات Google Play".

عدم الاعتماد على قيمة محفوظة مؤقتًا لمعرّف مجموعة التطبيقات

في أيّ من الحالات التالية، يمكن إعادة ضبط رقم تعريف مجموعة التطبيقات لمجموعة معيّنة من التطبيقات المثبَّتة من "متجر Google Play" على جهاز:

  • لم يتم الوصول إلى واجهة برمجة التطبيقات الخاصة بمعرّف مجموعة التطبيقات من قِبل مجموعات التطبيقات التي تشترك في قيمة المعرّف نفسها لأكثر من 13 شهرًا.
  • يتم إلغاء تثبيت آخر تطبيق من مجموعة معيّنة من التطبيقات من الجهاز.
  • يُجري المستخدم عملية إعادة ضبط الجهاز على الإعدادات الأصلية.

يجب أن يستخدم تطبيقك حزمة SDK لاسترداد قيمة المعرّف في كل مرة يكون فيها ذلك مطلوبًا.

إضافة حزمة تطوير البرامج (SDK) لمعرِّف مجموعة التطبيقات إلى تطبيقك

يعرض المقتطف التالي مثالاً على ملف build.gradle يستخدم مكتبة set ID للتطبيقات:

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

يوضّح المقتطف التالي كيفية استرداد معرّف مجموعة التطبيقات بشكل غير متزامن باستخدام Tasks API في خدمات Google Play:

Kotlin

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

Java

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();
    }
});