Đề xuất tài khoản điện thoại

Trong Android 10, dịch vụ đề xuất tài khoản điện thoại cho phép hiển thị các đề xuất về 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 thiết bị có nhiều SIM và mức cước thấp hơn cho các cuộc gọi nội mạng, trước tiên, dịch vụ này sẽ xác định nhà mạng của người được gọi, sau đó đề xuất sử dụng SIM trên cùng mạng với ứng dụng đượ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 dịch vụ PhoneAccountSuggestionService 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à không đặt tài khoản điện thoại đi mặc định hoặc tài khoản điện thoại ưu tiên 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) sẽ đượ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 thực hiện cuộc gọi.

Đề xuất tài khoản điện thoại

Để đưa ra đề xuất, hãy sử dụng lớp PhoneAccountsuggestedion. Ví dụ: nếu dịch vụ xác định rằng người được gọi sử dụng cùng một nhà mạng với một trong các SIM của 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 đế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 một 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 cách triển khai cho một số nhà mạng cụ thể, bạn có thể bật hoặc tắt dịch vụ bằ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

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ả 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 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 quá trình triển khai, hãy chạy các thử nghiệm CTS sau: