معلومات مزود الاتصالات والارتباطات

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

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

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

لتنفيذ هذه التغييرات، قم بأحد الإجراءات التالية:

  • استخدم أحدث موفر جهات الاتصال.
  • قم بتحديث الإصدار الخاص بك (إذا كنت تستخدم إصدارًا متشعبًا).

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

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

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

من المتوقع أن يكون لهذه التغييرات تأثير كبير على واجهات برمجة التطبيقات. على سبيل المثال، لن يكون أداء ترتيب الإكمال التلقائي جيدًا. تتضمن التأثيرات المحتملة على سلوك واجهة برمجة التطبيقات ما يلي:

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

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

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

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

قد تكون الحقول المتأثرة في Android 10 موجودة في واجهات برمجة تطبيقات مختلفة، كما هو موضح في الجدول أدناه. تقوم حقول واجهة برمجة التطبيقات (API) المهملة بإرجاع السلوكيات كما هي مدرجة. نظرًا لاحتمال استخدام أحد هذه الحقول المهملة في العديد من واجهات برمجة التطبيقات (APIs)، تحقق من حالات الاستخدام الخاصة بك.

فصل حقول واجهة برمجة التطبيقات 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

النتائج لم يتم فرزها حسب التقارب. ويتم فرز هذه حسب النجمة والاسم .

البدائل

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

تطبيق

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

لا التخصيص

لا تقم بتخصيص تغييرات معلومات تقارب جهات الاتصال أو التغلب عليها. لقد تم تضمينها في إطار العمل، وإجراء أي تغييرات يخرجك من الامتثال. لا تقم أبدًا بتغيير الإعدادات الافتراضية أو توفير بدائل مستتر.