معلومات مقدّم جهات الاتصال ومدى التشابه

بدءًا من Android 10، يتم الوصول إلى البيانات المتعلّقة بمدى التشابه بين جهات الاتصال، والتي تديرها وحدة موفِّر جهات الاتصال (مصدر البيانات المعروضة في تطبيق جهات اتصال الجهاز)، بشكل مختلف عن الإصدارات الأقدم من Android.

قبل نظام التشغيل Android 10، كانت التطبيقات تستخدِم موفِّر جهات الاتصال للوصول إلى البيانات ونقلها بين الجهاز والخدمات على الإنترنت. يتضمّن نظام التشغيل Android 10 تغييرات في ما يتعلّق بإمكانية الوصول إلى البيانات لضمان زيادة خصوصية المستخدمين في جميع أجهزة Android 10 التي تستخدم "موفِّر جهات الاتصال". على سبيل المثال، لا تحتوي قاعدة البيانات الأساسية على بيانات تفضيلات جهات الاتصال. وبالتالي، لا يمكن للتطبيقات الكتابة فيه أو القراءة منه. تشمل التغييرات ما يلي:

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

لتنفيذ هذه التغييرات، نفِّذ أحد الإجراءات التالية:

  • استخدِم أحدث إصدار من "مقدّم جهات الاتصال".
  • تحديث الإصدار (إذا كنت تستخدم إصدارًا منفصلاً)

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

بالنسبة إلى الإصدار 9 من Android والإصدارات الأقدم، لم تتم إزالة بيانات التفاعل مع جهات الاتصال من مقدّم جهات الاتصال. بدلاً من ذلك، يتم محو بيانات التفاعل مع جهات الاتصال بشكل دوري (مرة واحدة في اليوم تقريبًا) لمحاكاة الإجراء نفسه في Android 10. يخزِّن مقدّم جهات الاتصال هذه المعلومات، ولكن بشكل مؤقت فقط.

التغييرات في واجهة برمجة التطبيقات

من المتوقّع أن يكون لهذه التغييرات تأثير كبير في واجهات برمجة التطبيقات. على سبيل المثال، لن يكون أداء ميزة الاقتراح التلقائي على مستوى جيد. تشمل الآثار المحتملة على سلوك واجهة برمجة التطبيقات ما يلي:

  • لن يخزِّن مقدّم جهات الاتصال إعدادات المستخدم المفضّلة لجهة الاتصال أو تفاعلاته معها في أعمدة جدول ContactsContract.Contacts.
  • لن ترتِّب واجهة برمجة التطبيقات الخاصة بميزة "الإكمال التلقائي" النتائج حسب مقياس التفاعل.
  • لن يتم تعديل عمودَي TIMES_CONTACTED / TIMES_USED و LAST_TIME_CONTACTED / LAST_TIME_USED.
    • يتم محو هذه القيم (إما إلى null أو ضبطها على 0، حسب الأعمدة المتأثرة) عند الترقية إلى Android 10.
    • يؤدي الترتيب في واجهات برمجة التطبيقات لطلبات البحث في ميزة "الإكمال التلقائي" إلى عرض النتائج مرتبة alfabetically، وليس حسب معلومات التشابه.
    • لا تؤدي طلبات البيانات من واجهة برمجة التطبيقات لجهات الاتصال المتكررة (على سبيل المثال، باستخدام سلسلة الفلتر CONTENT_FREQUENT_URI) إلى عرض أي نتائج.

بشكل عام، إذا كان أيّ من عناصر واجهة برمجة تطبيقات موفِّر جهات الاتصال المتوقّفة نهائيًا يستخدم عدادات، تحتوي هذه العدادات (عند استخدامها في Android 10) على القيمة 0، وتُعرِض القيمة 0 عند الاستعلام عنها. يتم تجاهل طلبات التعديل الواردة من واجهات برمجة التطبيقات المتأثرة. على سبيل المثال، تم إيقاف فئة ContactsContract.DataUsageFeedback نهائيًا، لذا يتم تجاهل طلبات التعديل والحذف التي تشير إلى هذه الفئة.

الحقول التي تؤثّر في واجهات برمجة التطبيقات

تم تغيير هذه الحقول في Android 10:

قد تكون الحقول المتأثرة في Android 10 متوفّرة في واجهات برمجة تطبيقات مختلفة، كما هو موضح في الجدول أدناه. تعرض حقول واجهة برمجة التطبيقات المتوقّفة السلوكيات كما هو موضّح. يُرجى التحقّق من حالات الاستخدام لأنّه قد يتم استخدام أحد هذه الحقول المنتهية الصلاحية في العديد من واجهات برمجة التطبيقات.

الفئة حقول واجهة برمجة التطبيقات 10 عمليات إرجاع
ContactsContract.Contacts
ContactsContract.RawContacts
ContactsContract.Data
ContactsContract.Entity
ContactOptionsColumns
TIMES_CONTACTED
LAST_TIME_CONTACTED
تحتوي هذه الأعمدة دائمًا على القيمة 0، بغض النظر عن كيفية استخدامها. ويتم تجاهل محاولات تعديلها.
Contacts markAsContacted() لا توجد عملية.
ContactsContract.DataUsageFeedback

update
delete

لا توجد عملية.
ContactsContract.Contacts تطبيقات مُستخدَمة بشكل متكرّر (مميّزة بنجمة + مُستخدَمة بشكل متكرّر)
CONTENT_STREQUENT_FILTER_URI
CONTENT_STREQUENT_URI
CONTENT_FREQUENT_URI
تعرِض هذه السمة جهات الاتصال المميّزة بنجمة فقط. لم يتم عرض أي جهات اتصال متكرّرة.
ContactsContract.CommonDataKinds.Email
ContactsContract.CommonDataKinds.Phone
ContactsContract.CommonDataKinds.Callable
واجهات برمجة التطبيقات الخاصة بالفلاتر (المعروفة أيضًا باسم "الإكمال التلقائي")

CONTENT_FILTER_URI
ENTERPRISE_CONTENT_FILTER_URI

النتائج غير مُرتَّبة حسب التقارب. ويتم ترتيبها حسب المحتوى المميّز بنجمة والاسم.

الحلول البديلة

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

التنفيذ

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

لا يتوفّر أي تخصيص.

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