פרטי הספק של אנשי הקשר והשיוך שלהם

החל מגרסה 10 של Android, הגישה לנתונים שקשורים לקשרים, שמנוהלים על ידי הרכיב ספק אנשי הקשר (מקור הנתונים שמוצגים באפליקציית אנשי הקשר של המכשיר), שונה מזו שבגרסה 9 ומטה.

לפני Android 10, אפליקציות השתמשו בספק אנשי הקשר כדי לגשת לנתונים ולהעביר אותם בין מכשיר לשירותים אונליין. ב-Android 10 יש שינויים לגבי הגישה לנתונים, כדי לשפר את פרטיות המשתמשים בכל מכשירי Android 10 שמשתמשים בספק אנשי הקשר. ראשית, מסד הנתונים הבסיסי לא מכיל נתונים של קשרי נוחות ליצירת קשר. לכן, אפליקציות לא יכולות לכתוב או לקרוא ממנו. השינויים כוללים:

  • הספק של אנשי הקשר לא מתעד נתונים שקשורים לתחום העניין של אנשי הקשר, כמו מספר הפעמים שיצרו קשר עם משתמש, הפעם האחרונה שבה הוא נוצר, האפליקציה שבה נעשה שימוש, האנשים שיצרו איתם קשר או נתונים היסטוריים קשורים.
  • הכיתה MultiAutoCompleteTextView ב-API להשלמה אוטומטית של ספק אנשי הקשר לא ממיינת את תוצאות השאילתות לפי מונה האינטראקציות.
  • מסגרת Android לא מספקת דירוג אנשי קשר מרומז. (עם זאת, הדירוג מפורש של אנשי קשר שנמצא בשליטת המשתמש (למשל, אנשי קשר מסומנים בכוכב) לא משתנה).

כדי ליישם את השינויים האלה, צריך לבצע אחת מהפעולות הבאות:

  • להשתמש ב-Contacts Provider העדכני ביותר.
  • מעדכנים את הגרסה (אם משתמשים בגרסה מפוצלת).

בנוסף, מעדכנים את כל האפליקציות שמסתמכות על התכונות של 'ספק אנשי קשר' שהוצאו משימוש. אסור להשתמש בגרסאות API שנועדו לעקוף את הפונקציות שהוצאו משימוש.

בגרסאות Android 9 ומטה, נתוני האינטראקציות עם אנשי הקשר לא הוסרו מספק אנשי הקשר. במקום זאת, נתוני האינטראקציה עם אנשי הקשר נמחקים מדי פעם (בערך פעם ביום) כדי ליצור סימולציות של הנתונים המקבילים ב-Android 10. ספק אנשי הקשר שומר את המידע הזה, אבל רק באופן זמני.

שינויים ב-API

השינויים האלה צפויים להשפיע באופן משמעותי על ממשקי ה-API. לדוגמה, דירוג ההשלמה האוטומטית לא יניב ביצועים טובים. השפעות פוטנציאליות על התנהגות ה-API:

  • ספק אנשי הקשר לא יאחסן את ההעדפות של המשתמש לגבי איש הקשר או את האינטראקציות שלו עם איש הקשר בעמודות של הטבלה ContactsContract.Contacts.
  • ה-API להשלמה אוטומטית לא ממיין את התוצאות לפי מונה אינטראקציות.
  • העמודות TIMES_CONTACTED / TIMES_USED ו-LAST_TIME_CONTACTED / LAST_TIME_USED לא יעודכנו.
    • אחרי השדרוג ל-Android 10, הערכים האלה יימחקו (ל-null או ל-0, בהתאם לעמודות המושפעות).
    • הדירוג בממשקי ה-API של שאילתות ההשלמה האוטומטית מחזיר תוצאות שממוינות לפי סדר אלפביתי, אף פעם לפי פרטי ההתאמה.
    • קריאות ל-API עבור אנשי קשר תדירים (לדוגמה, באמצעות מחרוזת המסנן CONTENT_FREQUENT_URI) לא מחזירות תוצאות.

באופן כללי, אם באחד מהרכיבים של ממשק ה-API של ספק אנשי הקשר שהוצא משימוש נעשה שימוש בספירה, הספרות בספירה הזו (כשמשתמשים בה ב-Android 10) הן 0, והיא מחזירה את הערך 0 כששולחים שאילתה. בקשות עדכון מממשקי ה-API המושפעים מתעלמות. לדוגמה, הכיתה ContactsContract.DataUsageFeedback הוצאה משימוש, ולכן המערכת מתעלמת מהקריאות לעדכון ולמחיקה של הכיתה הזו.

שדות שמשפיעים על ממשקי API

השדות האלה השתנו ב-Android 10:

יכול להיות שהשדות המושפעים ב-Android 10 נמצאים בממשקי API שונים, כפי שמצוין בטבלה שלמטה. שדות API שיצאו משימוש מחזירים את ההתנהגויות שמפורטות בטבלה. יכול להיות שאחד מהשדות האלה יוצא משימוש ישמש בכמה ממשקי ה-API שלכם, לכן חשוב לבדוק את תרחישי השימוש שלכם.

דרגה שדות API 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
סינון ממשקי API (נקרא גם השלמה אוטומטית)

CONTENT_FILTER_URI
ENTERPRISE_CONTENT_FILTER_URI

התוצאות לא ממוינות לפי דמיון. הקבצים ממוינים לפי כוכב ושם.

אפשרויות אחרות

אין חלופות לשדות ה-API שהוצאו משימוש. אסור לעקוף את ההגבלות האלה, בין אם בצורה של ממשקי API חדשים או שדות חדשים.

הטמעה

אין צורך לעשות דבר כדי ליישם את השינויים האלה. הן חלק מהיוזמה לשיפור הפרטיות של המשתמשים בפלטפורמת מערכת ההפעלה של Android. עם זאת, אם האפליקציות שלכם מסתמכות על תכונות שהוצאו משימוש, כדאי לעדכן אותן כדי לפצות על השינויים. בנוסף, אם אתם משתמשים בגרסה מורחבת של ספק אנשי הקשר, עליכם לעדכן את ספק אנשי הקשר.

ללא התאמה אישית

אין להתאים אישית את השינויים במידע על ההתאמה של אנשי הקשר או לעקוף אותם. הם מובנים במסגרת, וכל שינוי בהם גורם לכך שהחשבון לא יעמוד בדרישות התאימות. אף פעם אין לשנות את הגדרות ברירת המחדל או לספק חלופות לשער אחורי.