Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

聯繫人提供商和關聯性信息

從Android 10開始,與聯繫人親和性相關的數據(由設備的聯繫人應用程序中看到的數據源)(由聯繫人提供程序組件管理)的訪問方式與Android 9及更低版本中的訪問方式不同。

在Android 10之前的版本中,應用程序使用聯繫人提供程序訪問數據並在設備和在線服務之間傳輸數據。 Android 10在數據可訪問性方面進行了更改,以確保在所有使用Contacts Provider的Android 10設備中增加用戶隱私。首先,基礎數據庫不包含聯繫親和力數據。因此,應用程序無法對其進行寫入或讀取。更改包括以下內容:

  • 聯繫人提供程序不記錄與聯繫人相關性相關的數據,例如聯繫用戶的次數,聯繫的最後時間,使用的應用程序,聯繫的人或任何相關的歷史數據。
  • Contacts Provider自動完成API中的MultiAutoCompleteTextView類不按交互計數器對查詢結果進行排序。
  • Android框架不提供隱式聯繫人排名。 (但是,保留用戶控制的顯式聯繫人排名(例如已加星標的聯繫人))。

要實現這些更改,請執行以下任一操作:

  • 使用最新的聯繫人提供程序。
  • 更新您的版本(如果您使用的是派生版本)。

此外,更新所有依賴於已棄用的聯繫人提供程序功能的應用程序不允許使用旨在作為已棄用功能的變通辦法的API版本

對於Android 9及更低版本,尚未刪除來自聯繫人提供程序的聯繫人互動數據。而是定期(每天大約一次)清除聯繫人互動數據,以模擬Android 10中的等效數據。ContactsProvider存儲此信息,但僅臨時存儲。

API變更

預計這些更改將對API產生重大影響。例如,自動完成排名不會很好。對API行為的潛在影響包括:

  • Contacts Provider不會在ContactsContract.Contacts表列中存儲用戶對聯繫人的首選項或與之交互。
  • 自動完成API不會按交互計數器對結果進行排序。
  • TIMES_CONTACTED / TIMES_USEDLAST_TIME_CONTACTED / LAST_TIME_USED列將不會更新。
    • 在升級到Android 10時清除(根據受影響的列,為null或設置為0)。
    • 自動完成查詢API中的排名返回的結果是按字母順序排序,而不是按親和力信息排序。
    • 頻繁聯繫的API調用(例如,使用過濾字符串CONTENT_FREQUENT_URI )不會返回任何結果。

通常,如果任何不推薦使用的Contacts Provider 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 OS平台上提高用戶隱私權的計劃的一部分。但是,如果您的應用程序依賴不推薦使用的功能,則可能需要更新應用程序以補償所有更改。此外,如果您使用聯繫人提供程序的分支版本,則必須更新您的聯繫人提供程序。

沒有定制

不要自定義或解決聯繫人的親和力信息更改。它們內置在框架中,進行任何更改都會使您脫離合規性。切勿更改默認設置或提供後門替代方案。