電話賬戶建議

在 Android 10 中,電話帳戶建議服務允許在撥打電話時向用戶顯示電話帳戶建議。例如,對於擁有多張 SIM 卡且網絡內通話費率較低的設備的用戶,該服務首先識別被叫方的運營商,然後建議在與被叫方相同的網絡上使用 SIM 卡。

電話帳戶建議服務是可選的,可以在運行 Android 10 或更高版本的設備上實施。

執行

要實施電話帳戶建議,請在位於/system/priv-app/的應用程序中實施一項PhoneAccountSuggestionService服務。如果實現了多個PhoneAccountSuggestionService ,則不會查詢該服務。該服務必須聲明android.Manifest.permission.BIND_PHONE_ACCOUNT_SUGGESTION_SERVICE權限。

當用戶撥打電話時,沒有為被叫設置默認呼出電話帳戶首選電話帳戶,電信服務綁定到PhoneAccountSuggestionService收集有關帳戶的信息,調用onAccountSuggestionRequest(String number) ,然後呼出進程暫停。

PhoneAccountSuggestionService必須使用onAccountSuggestionRequest(String number)返回的數字調用suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions) )。

suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions)時,電信服務返回一個建議的電話賬戶列表。然後,撥號器必須顯示建議的電話帳戶列表,供用戶選擇以撥打電話。

電話賬戶建議

要提出建議,請使用PhoneAccountSuggestion類。例如,如果服務確定被叫方與設備中的 SIM 卡之一在同一運營商上,則服務應使用REASON_INTRA_CARRIER標記電話帳戶。然後可以在撥號器中將此信息傳達給用戶。

例如,在用戶已將設備配置為對工作 Google 帳戶中的所有聯繫人使用工作 SIM 的情況下,服務應使用shouldAutoSelect標記電話帳戶並將REASON_USER_SET設置為 true 以允許撥號程序繞過選擇對話框並使用電話帳戶自動撥打電話。

有關其他建議的信息,請參閱PhoneAccountSuggestion

撥號器

當呼叫進入STATE_SELECT_PHONE_ACCOUNT狀態時,撥號器必須使用來自PhoneAccountSuggestion的信息來處理EXTRA_SUGGESTED_PHONE_ACCOUNTS

禁用服務

要為特定運營商自定義實施,您可以使用setComponentEnabledSetting啟用或禁用該服務。如果禁用,則不會查詢該服務。

系統界面實現

根據您的實施,可能需要更改系統 UI。例如,要允許用戶指定對特定聯繫人的所有呼叫均來自特定電話帳戶,您必須為設備實施自定義設置流程和設置 UI。

驗證

要驗證您的實施,請運行以下 CTS 測試: