ข้อมูลผู้ติดต่อและข้อมูลผู้สนใจ

เริ่มต้นใน Android 10 ข้อมูลรายชื่อผู้ติดต่อ-ความสัมพันธ์ที่เกี่ยวข้องกับการจัดการโดย ผู้ให้บริการรายชื่อ องค์ประกอบ (แหล่งที่มาของข้อมูลที่เห็นในแอปรายชื่อของอุปกรณ์) ที่มีการเข้าถึงที่แตกต่างกว่าใน Android 9 และล่าง

ก่อน Android 10 แอปต่างๆ ใช้ผู้ให้บริการรายชื่อติดต่อเพื่อเข้าถึงข้อมูลและโอนข้อมูลระหว่างอุปกรณ์และบริการออนไลน์ การเปลี่ยนแปลงคุณลักษณะของ Android 10 เกี่ยวกับการเข้าถึงข้อมูลเพื่อเพิ่มความเป็นส่วนตัวของผู้ใช้ในอุปกรณ์ Android 10 ทั้งหมดที่ใช้ผู้ให้บริการรายชื่อติดต่อ ประการหนึ่ง ฐานข้อมูลพื้นฐานไม่มีข้อมูลผู้สนใจติดต่อ ดังนั้นแอพจึงไม่สามารถเขียนหรืออ่านจากมันได้ การเปลี่ยนแปลงรวมถึงสิ่งต่อไปนี้:

  • ผู้ให้บริการรายชื่อติดต่อจะไม่บันทึกข้อมูลที่เกี่ยวข้องกับผู้สนใจติดต่อ เช่น จำนวนครั้งที่ติดต่อผู้ใช้ ครั้งล่าสุดที่ติดต่อ แอปที่ใช้ บุคคลที่ติดต่อ หรือข้อมูลประวัติที่เกี่ยวข้อง
  • MultiAutoCompleteTextView ชั้นในของผู้ให้บริการรายชื่อการเติมข้อความอัตโนมัติ API ไม่ได้เรียงลำดับผลการค้นหาจากเคาน์เตอร์ปฏิสัมพันธ์
  • เฟรมเวิร์กของ Android ไม่มีการจัดอันดับผู้ติดต่อโดยปริยาย ( แต่ผู้ใช้ควบคุมรายชื่อการจัดอันดับอย่างชัดเจน (เช่นรายชื่อติดดาว) ยังคง)

หากต้องการใช้การเปลี่ยนแปลงเหล่านี้ ให้เลือกทำอย่างใดอย่างหนึ่งต่อไปนี้:

  • ใช้ผู้ให้บริการผู้ติดต่อล่าสุด
  • อัปเดตเวอร์ชันของคุณ (หากคุณใช้เวอร์ชันแยก)

นอกจากนี้การปรับปรุงปพลิเคชันใด ๆ ที่พึ่งพา เลิกใช้คุณลักษณะของผู้ให้บริการรายชื่อ รุ่น API ออกแบบมาเพื่อเป็นวิธีการแก้ปัญหาการทำงานเลิกไม่ได้รับอนุญาต

สำหรับ Android 9 และต่ำกว่า ข้อมูลการโต้ตอบผู้ติดต่อจากผู้ให้บริการผู้ติดต่อจะไม่ถูกลบออก แต่ข้อมูลการติดต่อ-ปฏิสัมพันธ์จะถูกล้างเป็นระยะๆ (ประมาณวันละครั้ง) เพื่อจำลองสิ่งที่เทียบเท่าใน Android 10 ผู้ให้บริการที่อยู่ติดต่อจะเก็บข้อมูลนี้ไว้ชั่วคราวเท่านั้น

การเปลี่ยนแปลง API

การเปลี่ยนแปลงเหล่านี้คาดว่าจะส่งผลกระทบอย่างมากต่อ API ตัวอย่างเช่น การจัดอันดับการเติมข้อความอัตโนมัติจะไม่ทำงานเช่นกัน ผลกระทบที่อาจเกิดขึ้นกับพฤติกรรมของ API มีดังต่อไปนี้:

  • ผู้ให้บริการรายชื่อจะไม่จัดเก็บการตั้งค่าของผู้ใช้สำหรับ, หรือการโต้ตอบกับผู้ติดต่อใน ContactsContract.Contacts คอลัมน์ของตาราง
  • API เติมข้อความอัตโนมัติจะไม่จัดเรียงผลลัพธ์ตามตัวนับการโต้ตอบ
  • TIMES_CONTACTED / TIMES_USED และ LAST_TIME_CONTACTED / LAST_TIME_USED คอลัมน์จะไม่ได้รับการปรับปรุง
    • เหล่านี้ชัดเจน (อย่างใดอย่างหนึ่ง null หรือชุด 0, ขึ้นอยู่กับการได้รับผลกระทบคอลัมน์) เมื่ออัพเกรดเป็น Android 10
    • การจัดอันดับใน API ของการค้นหาการเติมข้อความอัตโนมัติจะส่งคืนผลลัพธ์ที่จัดเรียงตามตัวอักษร จะไม่แสดงตามข้อมูลความสัมพันธ์
    • เรียก API สำหรับการติดต่อบ่อย (สำหรับตัวอย่างเช่นการใช้สตริงกรอง CONTENT_FREQUENT_URI ) กลับไม่มีผลลัพธ์

โดยทั่วไป หากองค์ประกอบ API ของผู้ให้บริการผู้ติดต่อที่เลิกใช้แล้วใช้ตัวนับ ตัวนับเหล่านั้น (เมื่อใช้ใน Android 10) จะมีค่า 0 และคืนค่า 0 เมื่อถูกสอบถาม คำขออัปเดตจาก API ที่ได้รับผลกระทบจะถูกละเว้น ยกตัวอย่างเช่น ContactsContract.DataUsageFeedback ระดับได้รับการยกเลิกเพื่อปรับปรุงและลบโทรไปยังชั้นนี้จะถูกละเว้น

ฟิลด์ที่ส่งผลกระทบต่อ APIs

ฟิลด์เหล่านี้มีการเปลี่ยนแปลงใน 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 Strequent (มงคล + บ่อย)
CONTENT_STREQUENT_FILTER_URI
CONTENT_STREQUENT_URI
CONTENT_FREQUENT_URI
ผลตอบแทนรายชื่อมงคลเท่านั้น ไม่ติดต่อกลับบ่อยๆ
ContactsContract.CommonDataKinds.Email
ContactsContract.CommonDataKinds.Phone
ContactsContract.CommonDataKinds.Callable
ตัวกรอง (เรียกอีกอย่างว่าเติมข้อความอัตโนมัติ) APIs

CONTENT_FILTER_URI
ENTERPRISE_CONTENT_FILTER_URI

ผลลัพธ์ไม่ได้จัดเรียงตามผู้สนใจ เหล่านี้จะเรียงตามติดดาวและชื่อ

ทางเลือก

ไม่มีทางเลือกอื่นสำหรับฟิลด์ API ที่เลิกใช้แล้ว ไม่อนุญาตวิธีแก้ปัญหาชั่วคราวที่ออกแบบมาเพื่อหลีกเลี่ยงข้อจำกัดเหล่านี้ ไม่ว่าจะอยู่ในรูปแบบของ API ใหม่หรือฟิลด์ใหม่

การดำเนินการ

คุณไม่จำเป็นต้องดำเนินการใดๆ เพื่อใช้การเปลี่ยนแปลงเหล่านี้ เป็นส่วนหนึ่งของความคิดริเริ่มในการเพิ่มความเป็นส่วนตัวของผู้ใช้บนแพลตฟอร์มระบบปฏิบัติการ Android อย่างไรก็ตาม หากแอปของคุณใช้คุณลักษณะที่เลิกใช้แล้ว คุณอาจต้องอัปเดตแอปเพื่อชดเชยการเปลี่ยนแปลงใดๆ นอกจากนี้ หากคุณใช้เวอร์ชันที่แยกจากผู้ให้บริการผู้ติดต่อ คุณต้องอัปเดตผู้ให้บริการผู้ติดต่อของคุณ

ไม่มีการปรับแต่ง

อย่าปรับแต่งหรือหลีกเลี่ยงการเปลี่ยนแปลงข้อมูลผู้สนใจติดต่อ สิ่งเหล่านี้สร้างขึ้นในกรอบงาน และการเปลี่ยนแปลงใดๆ จะนำคุณออกจากการปฏิบัติตามข้อกำหนด อย่าเปลี่ยนการตั้งค่าเริ่มต้นหรือให้ทางเลือกแบ็คดอร์