יצירת קשר עם ספק ומידע על זיקה

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

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

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

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

  • השתמש בספק אנשי הקשר העדכני ביותר.
  • עדכן את הגרסה שלך (אם אתה משתמש בגרסה מפוצלת).

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

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

שינויים ב-API

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

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

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

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

השדות האלה השתנו באנדרואיד 10:

השדות המושפעים באנדרואיד 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 חדשים או שדות חדשים, אינן מותרות.

יישום

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

אין התאמה אישית

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