Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

Đăng ký một lần IMS

Android 12 giới thiệu hỗ trợ cho một mô hình đăng ký duy nhất để cung cấp các tính năng MMTEL và RCS. Mô hình này cho phép các thiết bị có tất cả các tính năng IMS được quản lý thông qua một đăng ký IMS duy nhất do ImsService của thiết bị cung cấp và tuân thủ các yêu cầu do một số nhà cung cấp dịch vụ viễn thông đưa ra. So với mô hình đăng ký kép, trong đó nhiều đăng ký IMS được quản lý trên một thiết bị, đăng ký một lần làm giảm lưu lượng trên mạng của nhà cung cấp dịch vụ và tăng độ tin cậy.

Android 12 hỗ trợ mô hình đăng ký duy nhất này thông qua một kiến ​​trúc với một tập hợp các API cho phép ngăn xếp điện thoại AOSP quản lý cả các tính năng MMTEL do ImsService cung cấp và các tính năng RCS do ứng dụng nhắn tin RCS do người dùng lựa chọn cung cấp. Để hỗ trợ đăng ký một lần IMS, các nhà sản xuất thiết bị và nhà cung cấp SoC phải triển khai các API này để kích hoạt các tính năng RCS trong ứng dụng nhắn tin RCS do người dùng lựa chọn.

Hình 1 minh họa ngăn xếp IMS của thiết bị khi sử dụng mô hình đăng ký đơn IMS. Tất cả các ứng dụng IMS sử dụng ImsService mặc định của thiết bị cho các tính năng MMTEL và RCS qua một lần đăng ký IMS. Điều này bao gồm cấp phép, chuyển tiếp bản tin SIP và trao đổi khả năng người dùng RCS.

Kiến trúc chế độ đăng ký một lần

Hình 1. Kiến trúc mô hình đăng ký đơn

Android 11 trở xuống chỉ hỗ trợ mô hình đăng ký kép để cung cấp các tính năng MMTEL và RCS, trong đó MMTEL được cung cấp bởi ImsService của thiết bị và các tính năng RCS được triển khai ở trên cùng và quản lý ngăn xếp IMS của riêng chúng và kết nối với mạng của nhà cung cấp dịch vụ một cách độc lập.

Hình 2 minh họa kiến ​​trúc cho mô hình đăng ký kép. Trong mô hình này, mỗi ứng dụng chịu trách nhiệm kết nối với mạng của nhà cung cấp dịch vụ và thiết lập đăng ký IMS cho các tính năng MMTEL và RCS. ImsService của thiết bị triển khai MMTEL, sử dụng kết nối dữ liệu IMS của thiết bị với mạng của nhà cung cấp dịch vụ và hoạt động độc lập với các ứng dụng RCS khác.

kiến trúc chế độ đăng ký kép

Hình 2. Kiến trúc mô hình đăng ký kép

Các API đăng ký IMS đơn lẻ

Các thiết bị thuộc nhà cung cấp dịch vụ yêu cầu đăng ký một lần IMS phải hỗ trợ các API đăng ký một lần IMS và xác định tính năng Android PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION . Hình 3 cho thấy các API hỗ trợ đăng ký IMS đơn lẻ.

Các bề mặt API hỗ trợ đăng ký IMS một lần

Hình 3. Bề mặt API cấp cao hỗ trợ đăng ký một lần IMS

Các thiết bị Android hỗ trợ đăng ký một lần IMS như một phần của ngăn xếp điện thoại AOSP được yêu cầu để hỗ trợ tất cả các API AOSP được mô tả trong bảng sau.

Diện tích bề mặt API API ứng dụng RCS API IMS của nhà cung cấp Sự mô tả
Cung cấp RCS ProvisoningManager ImsConfigImplBase Cho phép OEM hoặc nhà cung cấp dịch vụ cung cấp ứng dụng để cập nhật trạng thái cấp phép RCS nếu nhà cung cấp dịch vụ sử dụng cơ chế quyền của nhà cung cấp dịch vụ độc quyền. ImsService cũng phải hỗ trợ AutoConfigurationServer (ACS) tiêu chuẩn để cấp phép cho các nhà cung cấp dịch vụ không sử dụng cơ chế độc quyền.
Chuyển tiếp tin nhắn SIP SipDelegateManager SipTransportImplBase Cho phép ứng dụng RCS trước tiên liên kết các thẻ tính năng RCS cụ thể với ImsService của thiết bị, sau đó gửi và nhận tin nhắn SIP và các cập nhật đăng ký IMS được liên kết với các thẻ tính năng RCS đó.
Thông báo mang chuyên dụng ConnectivityManager DataCallResponse Cho phép ứng dụng nghe thông báo QoS trên ổ cắm được liên kết với một cổng cục bộ cụ thể.
Xác thực GBA bootstrapAuthenticationRequest GbaService Cho phép ứng dụng RCS xác thực với mạng và các khóa truy cập được sử dụng cho các tính năng RCS chẳng hạn như truyền tệp.
Trao đổi khả năng người dùng RCS ImsRcsManager RcsCapabilityExchangeImplBase Cung cấp cho AOSP khả năng gửi các khả năng MMTEL và RCS của nó tới ImsService của nhà cung cấp để chúng có thể được xuất bản dưới một thực thể lên mạng để trao đổi khả năng của người dùng RCS. Đồng thời cho phép các ứng dụng khác quan tâm đến khả năng RCS của một hoặc nhiều địa chỉ liên hệ truy vấn mạng về khả năng RCS của địa chỉ liên hệ.

Bảo mật và quyền

Android 12 giới thiệu các quyền sau để đảm bảo truy cập an toàn vào mạng của nhà cung cấp dịch vụ và dữ liệu của người dùng:

Quyền android.permission.PERFORM_IMS_SINGLE_REGISTRATION phải được xác định bởi ứng dụng nhắn tin có các tính năng RCS. Để được cấp quyền này, những điều sau đây phải đúng:

  • Ứng dụng phải được cài đặt dưới dạng ứng dụng đặc quyền, nghĩa là nó được cài đặt sẵn trên thiết bị và được phép truy cập các quyền đặc quyền
  • Ứng dụng phải được đặt làm vai trò SMS mặc định của người dùng bằng RoleManager

Nếu cả hai điều kiện này không được đáp ứng, ứng dụng sẽ bị từ chối quyền truy cập vào quyền android.permission.PERFORM_IMS_SINGLE_REGISTRATION . Điều này có nghĩa là các ứng dụng của bên thứ ba không được phép truy cập vào các API đăng ký RCS vì chúng yêu cầu chứng nhận của nhà cung cấp dịch vụ trên thiết bị.

Quyền android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE khi được cấp cho một ứng dụng cũng có quyền READ_CONTACTS cho phép ứng dụng yêu cầu khả năng RCS của số điện thoại bằng RcsUceAdapter . Để được cấp quyền này, những điều sau đây phải đúng:

  • Ứng dụng phải được cài đặt dưới dạng ứng dụng đặc quyền, nghĩa là nó được cài đặt sẵn trên thiết bị và được phép truy cập các quyền đặc quyền.
  • Ứng dụng phải được xác định là một trong các vai trò RoleManager sau:

    • Ứng dụng nhắn tin mặc định: Do người dùng đặt.
    • Ứng dụng quay số mặc định: Do người dùng đặt.
    • Ứng dụng danh bạ mặc định: Một vai trò được giới thiệu trong Android 12 cho phép OEM xác định tên gói thông qua giá trị lớp phủ thiết bị config_systemContacts , giá trị này phải tương ứng với ứng dụng danh bạ của thiết bị. Ứng dụng đó sau đó được giao vai trò danh bạ.

Để truy cập APN IMS bằng ConnectivityManager để thiết lập và quản lý lưu lượng dữ liệu, các ứng dụng cũng phải yêu cầu quyền android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS .

Ví dụ và nguồn

Android cung cấp một ứng dụng trong AOSP triển khai ứng dụng nhắn tin thử nghiệm với hỗ trợ nhắn tin RCS cơ bản cho mục đích thử nghiệm và phát triển. Bạn có thể tìm thấy ứng dụng tại testapps/TestRcsApp . Khi ứng dụng được cài đặt trên một thiết bị, nó có thể được đặt làm ứng dụng nhắn tin mặc định của người dùng và sẽ có các quyền cần thiết để truy cập vào các API đăng ký đơn IMS.

Android cũng cung cấp một triển khai mẫu của ImsService cho RCS. Mã nguồn tại /testapps/ImsTestService .

Thực hiện

Để biết thêm chi tiết triển khai, hãy tải xuống Đăng ký một lần IMS trong Android .

Thẩm định

Để xác thực việc triển khai đăng ký một lần IMS của bạn, hãy làm như sau:

  • Đảm bảo vượt qua bộ thử nghiệm CtsTelephonyTestCases CTS.
  • Cài đặt và chạy TestRcsApp để chạy các trường hợp kiểm tra đăng ký đơn cơ bản trong quá trình tích hợp.
  • Vượt qua chứng nhận của nhà cung cấp dịch vụ cho các trường hợp kiểm tra đăng ký đơn IMS.