在 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
如要提出建議,請使用 PhoneAccountSuggestion 類別。舉例來說,如果服務判斷被叫方與裝置中的其中一個 SIM 卡使用相同電信業者,服務應以 REASON_INTRA_CARRIER
標記電話帳戶。然後在撥號程式中向使用者傳達這項資訊。
舉例來說,如果使用者將裝置設定為對工作 Google 帳戶中的所有聯絡人使用工作 SIM 卡,服務應以 REASON_USER_SET
標記電話帳戶,並將 shouldAutoSelect
設為 true,讓撥號程式略過選取對話方塊,自動使用電話帳戶撥號。
如要瞭解其他建議,請參閱 PhoneAccountSuggestion
。
Dialer
通話進入 STATE_SELECT_PHONE_ACCOUNT
狀態時,撥號器必須使用 PhoneAccountSuggestion
中的資訊來處理 EXTRA_SUGGESTED_PHONE_ACCOUNTS
。
停用服務
如要為特定貨運公司自訂實作方式,請使用 setComponentEnabledSetting
啟用或停用這項服務。如果停用這項服務,系統就不會查詢。
實作系統 UI
視實作方式而定,您可能需要變更系統 UI。舉例來說,如要讓使用者指定所有撥給特定聯絡人的電話都透過特定電話帳戶撥出,您必須為裝置實作自訂設定流程和設定使用者介面。
驗證
如要驗證實作項目,請執行下列 CTS 測試: