Trong Android 10, dịch vụ đề xuất tài khoản điện thoại cho phép người dùng thấy các đề xuất về tài khoản điện thoại khi thực hiện cuộc gọi. Ví dụ: đối với người dùng có thiết bị dùng nhiều SIM và có mức phí thấp hơn cho các cuộc gọi nội mạng, dịch vụ này trước tiên sẽ xác định nhà mạng của người nhận cuộc gọi, sau đó đề xuất sử dụng SIM có cùng mạng với người nhận cuộc gọi.
Dịch vụ đề xuất tài khoản điện thoại là không bắt buộc và có thể được triển khai trên các thiết bị chạy Android 10 trở lên.
Triển khai
Để triển khai các đề xuất về tài khoản điện thoại, hãy triển khai một
PhoneAccountSuggestionService
dịch vụ trong một ứng dụng nằm trong /system/priv-app/
. Dịch vụ sẽ không được truy vấn nếu bạn triển khai nhiều PhoneAccountSuggestionService
. Dịch vụ phải khai báo quyền android.Manifest.permission.BIND_PHONE_ACCOUNT_SUGGESTION_SERVICE
.
Khi người dùng thực hiện cuộc gọi đi mà người nhận cuộc gọi không thiết lập tài khoản điện thoại đi mặc định cũng như tài khoản điện thoại ưu tiên, dịch vụ viễn thông sẽ liên kết với PhoneAccountSuggestionService
để thu thập thông tin về các tài khoản, onAccountSuggestionRequest(String number)
được gọi và quy trình cuộc gọi đi sẽ bị tạm ngưng.
PhoneAccountSuggestionService
phải gọi suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions)
bằng số do onAccountSuggestionRequest(String number)
trả về.
Khi suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions)
được gọi, dịch vụ viễn thông sẽ trả về danh sách các tài khoản điện thoại được đề xuất. Sau đó, trình quay số phải hiển thị danh sách các tài khoản điện thoại được đề xuất để người dùng chọn gọi điện.
PhoneAccountSuggestion
Để đưa ra đề xuất, hãy dùng lớp PhoneAccountSuggestion.
Ví dụ: nếu dịch vụ xác định người nhận cuộc gọi đang dùng cùng một nhà mạng với một trong các SIM trong thiết bị, thì dịch vụ đó phải đánh dấu tài khoản điện thoại bằng REASON_INTRA_CARRIER
.
Sau đó, thông tin này có thể được truyền tải đến người dùng trong trình quay số.
Ví dụ: trong trường hợp người dùng đã định cấu hình thiết bị để sử dụng SIM công việc cho tất cả danh bạ trong Tài khoản Google công việc, dịch vụ sẽ đánh dấu tài khoản điện thoại bằng REASON_USER_SET
và đặt shouldAutoSelect
thành true để cho phép trình quay số bỏ qua hộp thoại lựa chọn và tự động thực hiện cuộc gọi bằng tài khoản điện thoại.
Để biết thông tin về các đề xuất khác, hãy xem PhoneAccountSuggestion
.
Dialer
Khi cuộc gọi chuyển sang trạng thái STATE_SELECT_PHONE_ACCOUNT
, trình quay số phải sử dụng thông tin từ PhoneAccountSuggestion
để xử lý EXTRA_SUGGESTED_PHONE_ACCOUNTS
.
Tắt dịch vụ
Để tuỳ chỉnh việc triển khai cho các hãng vận chuyển cụ thể, bạn có thể bật hoặc tắt dịch vụ bằng cách sử dụng setComponentEnabledSetting
.
Dịch vụ sẽ không được truy vấn nếu bị tắt.
Triển khai giao diện người dùng hệ thống
Tuỳ thuộc vào cách triển khai, bạn có thể phải thay đổi giao diện người dùng hệ thống. Ví dụ: để cho phép người dùng chỉ định rằng tất cả các cuộc gọi đến một người liên hệ cụ thể đều được thực hiện từ một tài khoản điện thoại cụ thể, bạn phải triển khai một quy trình thiết lập tuỳ chỉnh và giao diện người dùng cài đặt cho thiết bị.
Xác nhận kết quả
Để xác thực việc triển khai, hãy chạy các kiểm thử CTS sau: