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 danh bạ ái lực liên quan đến, bởi sự quản lý Liên hệ nhà cung cấp thành phần (nguồn gốc của dữ liệu thấy trong ứng dụng danh bạ của thiết bị), được truy cập khác biệt so với trong Android 9 và hạ thấp.

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:

  • Nhà cung cấp danh bạ không ghi lại dữ liệu liên quan đến mối quan hệ của người liên hệ, 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.
  • Các MultiAutoCompleteTextView lớp trong autocomplete API Liên hệ nhà cung cấp không loại truy vấn kết quả bằng cách tương tác truy cập.
  • Khung Android không cung cấp xếp hạng địa chỉ liên hệ ngầm định. (Tuy nhiên, người dùng kiểm soát, địa chỉ liên lạc rõ ràng xếp hạng (như danh bạ có dấu sao) còn lại).

Để 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ỏ).

Bên cạnh đó, cập nhật bất kỳ ứng dụng dựa trên các tính năng Liên hệ nhà cung cấp bị phản đối . Phiên bản API được thiết kế để có cách giải quyết đến các chức năng bị phản đối không được phép.

Đố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 tự 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:

  • Danh bạ nhà cung cấp sẽ không lưu trữ sở thích của người dùng cho, hoặc tương tác với, liên lạc trong ContactsContract.Contacts cột của bảng.
  • 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 cột này sẽ không được cập nhật.
    • Những rõ ràng (hoặc là null hoặc thiết lập để 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.
    • Cuộc gọi API cho liên lạc thường xuyên (ví dụ, bằng cách sử dụng chuỗi lọc CONTENT_FREQUENT_URI ) không có kết quả.

Nói chung, nếu bất kỳ phần tử API của Trình cung cấp Danh bạ 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ụ, ContactsContract.DataUsageFeedback lớp đã bị phản đối, vì vậy cập nhật và xóa các cuộc gọi đến lớp này sẽ được 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 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 Strequent (đóng vai chính + thường xuyên)
CONTENT_STREQUENT_FILTER_URI
CONTENT_STREQUENT_URI
CONTENT_FREQUENT_URI
Lợi nhuận chỉ đóng vai chính danh bạ. 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. Những đều được sắp xếp bởi gắn 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 về thông tin mối quan hệ của địa chỉ 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.