أداة اختيار جهات الاتصال في Android

توفّر أداة اختيار جهات الاتصال في Android واجهة موحّدة تحافظ على الخصوصية وتتيح للمستخدمين مشاركة جهات اتصال محدّدة مع التطبيقات. تم طرح هذه الميزة في Android 17، وهي بديل لا يتطلّب أذونات للإذن الواسع النطاق READ_CONTACTS.

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

هندسة معمارية

تتألّف أداة اختيار جهات الاتصال من مكوّنين رئيسيين:

  • تطبيق واجهة مستخدِم أداة الاختيار: يمثّل هذا المكوّن الواجهة التي يراها المستخدم لاختيار جهات الاتصال.
  • مزوّد الجلسة: يعمل هذا المكوّن كخدمة خلفية لإدارة جلسة الوصول المؤقت.

مخطط التسلسل الخاص بأداة اختيار جهات الاتصال

الشكل 1: مخطط التسلسل

واجهة مستخدِم أداة الاختيار

تتولّى واجهة مستخدِم أداة الاختيار واجهة المستخدِم لاختيار جهات الاتصال، وتطلب من مزوّد جهات الاتصال مباشرةً ملء طرق العرض استنادًا إلى أنواع البيانات المطلوبة. تشمل طرق العرض المتوافقة ما يلي:

  • أرقام الهواتف فقط: تعرض واجهة المستخدِم جهات الاتصال التي تحتوي على أرقام هواتف.
  • عناوين البريد الإلكتروني فقط: تعرض واجهة المستخدِم جهات الاتصال التي تحتوي على عناوين بريد إلكتروني.
  • معلومات الاتصال المخصّصة: تعرض واجهة المستخدِم جهات الاتصال التي تتطابق مع حقول البيانات المحدّدة المطلوبة.

بالإضافة إلى ذلك، تتيح واجهة المستخدِم الميزات التالية:

  • قائمة مرتّبة أبجديًا: يتم ترتيب جهات الاتصال أبجديًا مع إزالة البيانات المكرّرة.
  • صور جهات الاتصال الرمزية: تعرض واجهة المستخدِم صور جهات الاتصال أو الصور الرمزية.
  • المفضّلة: تظهر فئة "المفضّلة" في أعلى قائمة جهات الاتصال.
  • أداة تبديل الملفات الشخصية: تتيح هذه الميزة للمستخدمين اختيار جهات اتصال من ملفات شخصية مختلفة (على سبيل المثال، ملف شخصي للعمل مقابل ملف شخصي خاص).
  • الاختيار الفردي والمتعدّد: يتيح النظام وضعَي الاختيار الفردي والمتعدّد (الحدّ التلقائي هو 50 والحدّ الأقصى هو 100).
  • معاينة الاختيار: يمكن للمستخدمين معاينة جهات الاتصال التي اختاروها وإدارتها قبل التأكيد.
  • التمرير السريع: تتيح هذه الميزة التنقّل السريع في قائمة جهات الاتصال.
  • البحث: يتوفّر شريط بحث للعثور على جهات اتصال محدّدة.
  • إشعار الخصوصية وصفحة تفاصيل الخصوصية: يظهر إشعار إلزامي لإعلام المستخدمين بحقول البيانات التي يطلبها التطبيق تحديدًا (على سبيل المثال، أرقام الهواتف وعناوين البريد الإلكتروني).

مزوّد الجلسة

يعمل مزوّد الجلسة (packages/providers/ContactsProvider) كوسيط آمن بين تطبيق العميل ومزوّد جهات الاتصال.

  • الدور: استخدِم مزوّد الجلسة فقط عند تشغيل أداة الاختيار باستخدام Intent.ACTION_PICK_CONTACTS.
  • إدارة الجلسة: عندما يختار المستخدم جهات اتصال، تكتب واجهة مستخدِم أداة الاختيار بيانات الاختيار (المرتبطة بمعرّف المستخدم الخاص بالعميل) في مزوّد الجلسة.
  • الوصول إلى البيانات: يعرض المزوّد معرّف URI من النوع content://com.android.providers.contacts.picker.sessions لأداة الاختيار. تطبِّق أداة الاختيار علامات القراءة المناسبة قبل عرض معرّف URI على تطبيق العميل. يمنح معرّف URI هذا إذن قراءة مؤقتًا ودقيقًا لحقول البيانات المحدّدة التي اختارها المستخدم، بدون عرض كل بيانات جهة الاتصال.
  • إذن الوصول المميّز: تحمي أذونات التوقيع والأذونات المميّزة android.permission.MANAGE_CONTACTS_PICKER_SESSION إذن الكتابة إلى مزوّد الجلسة، ما يضمن ألا يتمكّن من إنشاء الجلسات سوى أداة اختيار مضمّنة بالنظام الموثوق بها.

التكامل

على الشركات المصنّعة للأجهزة والشركاء تضمين أداة اختيار جهات الاتصال في Android في الإصدارات التي تعمل بنظام التشغيل Android 17 والإصدارات الأحدث.

الأهداف المتوافقة

  • Intent.ACTION_PICK_CONTACTS: الهدف المقترَح للتطبيقات التي تستهدف Android 17 والإصدارات الأحدث.
  • Intent.ACTION_PICK: يتم الاحتفاظ به لضمان التوافق مع الأنظمة القديمة. يوجه النظام تلقائيًا هذه الطلبات إلى أداة الاختيار الجديدة لأنواع MIME المتوافقة (البريد الإلكتروني أو الهاتف أو جهة الاتصال).

إدارة الجلسة

للحفاظ على سلامة الجهاز والخصوصية، يفرض مزوّد الجلسة سياسة صارمة لتنظيف البيانات:

  • مهمة التنظيف: يتم تشغيل مهمة نظام (CleanupJobService) بشكل دوري لإزالة بيانات الجلسة التي مرّ عليها أكثر من 24 ساعة.
  • الحدّ الأقصى للصفوف: لمنع سعة التخزين المطلوب استخدامها بشكل مفرط، يبلغ الحدّ الأقصى لعدد الصفوف في جدول مزوّد الجلسة 5000 صف. إذا وصل الجدول إلى هذا الحجم، يزيل النظام تلقائيًا الصفوف الأقدم قبل إدراج بيانات الجلسة الجديدة.
  • الاستمرار: بيانات الجلسة مؤقتة. يُفترض أن تحتفظ تطبيقات العميل ببيانات جهات الاتصال التي يتم عرضها فور استلامها.

الأذونات

يتطلّب إذن الكتابة إلى مزوّد الجلسة الإذن android.permission.MANAGE_CONTACTS_PICKER_SESSION، الذي يقتصر على حزمة أداة اختيار جهات الاتصال في Android.

التخصيص والامتثال

يمكن للشركاء تخصيص العناصر المرئية، مثل الخطوط والألوان، ولكن يجب أن تتوافق عمليات التنفيذ مع القسم 3.18.2 من مستند تعريف التوافق مع Android (CDD) (سيتم تحديده لاحقًا).

التحقق من صحة البيانات

على الشركاء التحقّق من عمليات التنفيذ باستخدام كلٍّ من مجموعة أدوات اختبار التوافق (CTS) ومجموعة أدوات اختبار خدمات Google للأجهزة الجوّالة (GTS).