Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

Thông tin về Nhà cung cấp Danh bạ và Đối tác

Bắt đầu từ Android 10, dữ liệu liên quan đến danh bạ, được quản lý bởi thành phần Trình cung cấp danh bạ (nguồn dữ liệu trong ứng dụng danh bạ của thiết bị), được truy cập khác với trong Android 9 trở xuống.

Trước Android 10, các ứng dụng sử dụng Trình cung cấp danh bạ để truy cập và truyền dữ liệu giữa thiết bị và các dịch vụ trực tuyến. Android 10 có các thay đổi liên quan đến khả năng truy cập dữ liệu để đảm bảo quyền riêng tư của người dùng được tăng cường trên tất cả các thiết bị Android 10 sử dụng Trình cung cấp danh bạ. Đối với một, cơ sở dữ liệu cơ bản không chứa dữ liệu sở thích liên hệ. Do đó, các ứng dụng không thể ghi hoặc đọc từ nó. Những thay đổi bao gồm những điều sau:

  • Trình cung cấp danh bạ không ghi lại dữ liệu liên quan đến mối quan hệ của danh bạ, chẳng hạn như số lần người dùng được liên hệ, lần liên hệ cuối cùng, ứng dụng đã sử dụng, người được liên hệ hoặc bất kỳ dữ liệu lịch sử liên quan nào.
  • Lớp MultiAutoCompleteTextView trong API tự động hoàn thành của Trình cung cấp Danh bạ không sắp xếp kết quả truy vấn theo bộ đếm tương tác.
  • Khung Android không cung cấp xếp hạng địa chỉ liên hệ ngầm định. (Tuy nhiên, xếp hạng liên hệ rõ ràng , do người dùng kiểm soát (chẳng hạn như liên hệ được gắn dấu sao ) vẫn còn).

Để triển khai những thay đổi này, hãy thực hiện một trong những thao tác sau:

  • Sử dụng Trình cung cấp Danh bạ mới nhất.
  • Cập nhật phiên bản của bạn (nếu bạn đang sử dụng phiên bản đã chia nhỏ).

Ngoài ra, hãy cập nhật bất kỳ ứng dụng nào dựa trên các tính năng của Trình cung cấp danh bạ không dùng nữa . Không cho phép các phiên bản API được thiết kế để thay thế cho các hàm không dùng nữa .

Đối với Android 9 trở xuống, dữ liệu tương tác liên hệ từ Trình cung cấp danh bạ chưa bị xóa. Thay vào đó, dữ liệu tương tác liên hệ sẽ bị xóa định kỳ (khoảng một lần mỗi ngày) để mô phỏng dữ liệu tương đương trong Android 10. Trình cung cấp danh bạ lưu trữ thông tin này, nhưng chỉ tạm thời.

Thay đổi API

Những thay đổi này dự kiến ​​sẽ có tác động lớn đến các API. Ví dụ: xếp hạng tự động hoàn thành cũng không hoạt động. Các tác động có thể xảy ra đối với hành vi API bao gồm:

  • Trình cung cấp Danh bạ sẽ không lưu trữ các tùy chọn của người dùng hoặc các tương tác với liên hệ trong các cột của bảng ContactsContract.Contacts .
  • API tự động hoàn thành sẽ không sắp xếp kết quả theo bộ đếm tương tác.
  • Các TIMES_CONTACTED / TIMES_USEDLAST_TIME_CONTACTED / LAST_TIME_USED sẽ không được cập nhật.
    • Chúng sẽ xóa (thành null hoặc đặt thành 0, tùy thuộc vào các cột bị ảnh hưởng) khi nâng cấp lên Android 10.
    • Xếp hạng trong các API truy vấn tự động hoàn thành trả về kết quả được sắp xếp theo thứ tự bảng chữ cái, không bao giờ theo thông tin sở thích.
    • Lệnh gọi API cho các liên hệ thường xuyên (ví dụ: sử dụng chuỗi bộ lọc CONTENT_FREQUENT_URI ) không trả về kết quả.

Nói chung, nếu bất kỳ phần tử API của Trình cung cấp Danh bạ nào không dùng nữa sử dụng bộ đếm, thì các bộ đếm đó (khi được sử dụng trong Android 10) sẽ chứa 0 và trả về 0 khi được truy vấn. Yêu cầu cập nhật từ các API bị ảnh hưởng bị bỏ qua. Ví dụ: lớp ContactsContract.DataUsageFeedback không được dùng nữa, do đó, việc cập nhật và xóa các lệnh gọi tới lớp này sẽ bị bỏ qua.

Các trường ảnh hưởng đến API

Các trường này đã thay đổi trong Android 10:

Các trường bị ảnh hưởng trong Android 10 có thể xuất hiện trong các API khác nhau, như được chỉ ra trong bảng bên dưới. Các trường API không được chấp nhận trả về các hành vi như được liệt kê. Vì một trong các trường không dùng nữa này có thể được sử dụng trong một số API của bạn, hãy xác minh các trường hợp sử dụng của bạn.

Lớp học Các trường API 10 lần trả lại
ContactsContract.Contacts
ContactsContract.RawContacts
ContactsContract.Data
ContactsContract.Entity
ContactOptionsColumns
TIMES_CONTACTED
LAST_TIME_CONTACTED
Các cột này luôn chứa 0, bất kể chúng được sử dụng như thế nào. Các nỗ lực sửa đổi chúng đều bị bỏ qua.
Contacts markAsContacted() Không hoạt động.
ContactsContract.DataUsageFeedback

update
delete

Không hoạt động.
ContactsContract.Contacts Thường xuyên (có gắn dấu sao + thường xuyên)
CONTENT_STREQUENT_FILTER_URI
CONTENT_STREQUENT_URI
CONTENT_FREQUENT_URI
Chỉ trả về các địa chỉ liên hệ được gắn dấu sao . Không có liên hệ thường xuyên nào được trả lại.
ContactsContract.CommonDataKinds.Email
ContactsContract.CommonDataKinds.Phone
ContactsContract.CommonDataKinds.Callable
Các API bộ lọc (còn được gọi là tự động hoàn thành)

CONTENT_FILTER_URI
ENTERPRISE_CONTENT_FILTER_URI

Kết quả không được sắp xếp theo sở thích. Chúng được sắp xếp theo dấu saotên .

Giải pháp thay thế

Không có lựa chọn thay thế cho các trường API không dùng nữa. Các giải pháp thay thế được thiết kế để phá vỡ những hạn chế này, cho dù ở dạng API mới hay trường mới, đều không được phép.

Thực hiện

Bạn không cần phải làm bất cứ điều gì để thực hiện những thay đổi này. Họ là một phần của sáng kiến ​​nhằm tăng cường quyền riêng tư của người dùng trên nền tảng hệ điều hành Android. Tuy nhiên, nếu ứng dụng của bạn dựa trên các tính năng không dùng nữa, bạn có thể muốn cập nhật ứng dụng của mình để bù đắp cho bất kỳ thay đổi nào. Ngoài ra, nếu bạn sử dụng phiên bản đã phân nhánh của Trình cung cấp Danh bạ, bạn phải cập nhật Trình cung cấp Danh bạ của mình.

Không có tùy chỉnh

Không tùy chỉnh hoặc làm việc xung quanh các thay đổi thông tin sở thích của các liên hệ. Chúng được xây dựng trong khuôn khổ và việc thực hiện bất kỳ thay đổi nào sẽ khiến bạn không tuân thủ. Không bao giờ thay đổi cài đặt mặc định hoặc cung cấp các lựa chọn thay thế cửa sau.