في حالات الاستخدام، مثل التحليلات أو منع الاحتيال على جهاز معيّن، قد تحتاج إلى ربط الاستخدام أو الإجراءات بمجموعة من التطبيقات التي تملكها مؤسستك. توفر "خدمات Google Play" خيارًا يحافظ على الخصوصية يُعرف باسم معرّف مجموعة التطبيقات.
نطاق معرّف مجموعة التطبيقات
يمكن أن يكون لمعرّف مجموعة التطبيقات أحد النطاقات المحدّدة التالية. لتحديد النطاق المرتبط بمعرّف معيّن، يمكنك استدعاء
getScope().
نطاق المطوّر على Google Play
بالنسبة إلى التطبيقات التي يتم تثبيتها من خلال "متجر Google Play"، تعرض واجهة برمجة التطبيقات لمعرّف مجموعة التطبيقات معرّفًا ضمن نطاق مجموعة التطبيقات المنشورة ضمن حساب المطوّر نفسه على Google Play.
على سبيل المثال، لنفترض أنّك تنشر تطبيقَين ضمن حساب المطوّر على Google Play وأنّه يتم تثبيت كلا التطبيقَين على الجهاز نفسه من خلال "متجر Google Play". يتشارك التطبيقان معرّف مجموعة التطبيقات نفسه على هذا الجهاز. ويكون المعرّف نفسه حتى إذا تم توقيع التطبيقَين بمفتاحَين مختلفَين.
نطاق التطبيق
في أي من الحالات التالية، تعرض حزمة تطوير البرامج (SDK) لمعرّف مجموعة التطبيقات معرّفًا فريدًا للتطبيق الذي يستدعيها على جهاز معيّن:
- يتم تثبيت التطبيق من خلال أداة تثبيت أخرى غير "متجر Google Play".
- لا يمكن لـ "خدمات Google Play" تحديد حساب المطوّر على Google Play لتطبيق معيّن.
- يتم تثبيت التطبيق على جهاز لا يتضمّن "خدمات Google Play".
عدم الاعتماد على قيمة مخزّنة مؤقتًا لمعرّف مجموعة التطبيقات
في أي من الحالات التالية، يمكن إعادة ضبط معرّف مجموعة التطبيقات لمجموعة معيّنة من التطبيقات المثبَّتة من "متجر Google Play" على جهاز معيّن:
- لم يتم الوصول إلى واجهة برمجة التطبيقات لمعرّف مجموعة التطبيقات من قِبل مجموعات التطبيقات التي تتشارك قيمة المعرّف نفسها لأكثر من 13 شهرًا.
- تم إلغاء تثبيت آخر تطبيق من مجموعة معيّنة من التطبيقات من الجهاز.
- أجرى المستخدم عملية إعادة الضبط على الإعدادات الأصلية للجهاز.
يجب أن يستخدم تطبيقك حزمة تطوير البرامج (SDK) لاسترداد قيمة المعرّف في كل مرة تكون هناك حاجة إليها.
إضافة حزمة تطوير البرامج (SDK) لمعرّف مجموعة التطبيقات إلى تطبيقك
يوضّح المقتطف التالي مثالاً لملف build.gradle يستخدم مكتبة معرّف مجموعة التطبيقات:
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();
}
});
لمزيد من المعلومات عن تنسيق UUID، يُرجى الاطّلاع على مقالة المعرّف الفريد عالميًا.