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

توفّر "أداة اختيار جهات الاتصال" على Android واجهة عادية تحافظ على الخصوصية وتتيح للمستخدمين مشاركة جهات اتصال محدّدة مع التطبيقات. تم طرح هذه الميزة في الإصدار 17 من نظام التشغيل Android، وهي بديل لا يتطلّب الحصول على إذن لاستخدام إذن 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 في الإصدارات 17 من نظام التشغيل Android والإصدارات الأحدث.

الطلبات المتوافقة

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

إدارة الجلسة

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

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

الأذونات

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

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

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

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

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