Trên Android 10, dịch vụ gợi ý tài khoản điện thoại cho phép hiển thị gợi ý tài khoản điện thoại cho người dùng khi thực hiện cuộc gọi. Ví dụ: đối với người dùng có thiết bị có nhiều SIM và cước phí cuộc gọi nội mạng thấp hơn, dịch vụ này trước tiên sẽ xác định nhà cung cấp dịch vụ của người được gọi và sau đó đề xuất sử dụng SIM trên cùng mạng với người được gọi.
Dịch vụ gợi ý tài khoản điện thoại là tùy chọn và có thể được triển khai trên các thiết bị chạy Android 10 trở lên.
Thực hiện
Để triển khai đề xuất tài khoản điện thoại, hãy triển khai một dịch vụ PhoneAccountSuggestionService
trong ứng dụng nằm trong /system/priv-app/
. Dịch vụ không được truy vấn nếu có nhiều hơn một PhoneAccountSuggestionService
được triển khai. 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 trong đó cả tài khoản điện thoại đi mặc định lẫn tài khoản điện thoại ưu tiên đều không được đặt cho người được gọi, 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à cuộc gọi đi quá trình bị đình chỉ.
PhoneAccountSuggestionService
phải gọi suggestPhoneAccounts(String number, List<PhoneAccountSuggestion> suggestions)
với số được trả về bởi onAccountSuggestionRequest(String number)
.
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. Khi đó trình quay số phải hiển thị danh sách các tài khoản điện thoại gợi ý để người dùng lựa chọn thực hiện cuộc gọi.
Điện thoạiTài khoảnĐề xuất
Để đưa ra đề xuất, hãy sử dụng lớp PhoneAccountSuggestion . Ví dụ: nếu dịch vụ xác định người gọi thuộc cùng một nhà cung cấp dịch vụ với một trong các SIM trong thiết bị thì dịch vụ sẽ đánh dấu tài khoản điện thoại bằng REASON_INTRA_CARRIER
. Thông tin này sau đó có thể được chuyển đế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ả các liên hệ 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
.
Trình quay số
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
.
Vô hiệu hóa dịch vụ
Để tùy chỉnh việc triển khai của bạn cho các nhà cung cấp dịch vụ 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ụ không được truy vấn nếu bị tắt.
Triển khai giao diện người dùng hệ thống
Tùy thuộc vào việc triển khai của bạn, có thể cần 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 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 giao diện người dùng cài đặt và quy trình thiết lập tùy chỉnh cho thiết bị.
Thẩm định
Để xác thực việc triển khai của bạn, hãy chạy thử nghiệm CTS sau: