Trang này mô tả cách triển khai tính năng tin nhắn theo thời gian thực (RTT) trong Android 9. RTT là một tính năng dành cho người dùng khiếm thính hoặc bị suy giảm thính lực, thay thế cho công nghệ máy điện báo (TTY). Với tính năng này, các thiết bị có thể sử dụng cùng một số điện thoại cho cuộc gọi thoại và cuộc gọi RTT, đồng thời truyền văn bản ngay khi văn bản được nhập từng ký tự, hỗ trợ liên lạc với số điện thoại khẩn cấp 911 và cung cấp khả năng tương thích ngược với TTY.
Trong cuộc gọi RTT, cả người gọi và người nhận đều có dấu hiệu cho thấy họ đang thực hiện cuộc gọi RTT. Khi kết nối, cả hai bên sẽ tham gia cuộc gọi RTT, trong đó chế độ nhập văn bản và bàn phím được kích hoạt. Khi bạn nhập, văn bản sẽ xuất hiện và được gửi theo từng ký tự.
Ví dụ và nguồn
Các thành phần khung có trong AOSP tại Call.RttCall và Connection.RttTextStream. Các thành phần IMS/modem là độc quyền và phải do nhà cung cấp IMS/modem cung cấp. Bạn cũng có thể tham khảo cách triển khai RTT của ứng dụng Quay số.
Mã Trình quay số AOSP cho RTT:
- InCall: /java/com/android/incallui/rtt
- Nhật ký cuộc gọi: /java/com/android/dialer/rtt
Triển khai
Để triển khai RTT, bạn nên hợp tác với nhà cung cấp modem/SoC vì cần có modem hỗ trợ RTT. Bạn có thể nâng cấp lên Android 9 hoặc chuyển ngược một danh sách các bản vá khung truyền thông vào Android 8.0. Các API được thêm vào AOSP Android 8.0 sẽ không hoạt động.
Tính năng này sử dụng các API công khai trong AOSP trong android.telecom
và @SystemApis trong android.telephony.ims
. Tất cả giao diện người dùng đều nằm trong com.android.phone
và trình quay số AOSP.
Để triển khai RTT, hãy nhập mã AOSP và cung cấp một ngăn xếp IMS triển khai @SystemApis phía IMS cho RTT. Việc này đòi hỏi:
- Bật/tắt RTT bằng cách sử dụng
ImsConfig#setProvisionedValue(RTT_SETTING_ENABLED)
- Cho biết trạng thái RTT của cuộc gọi bằng cách sử dụng
ImsStreamMediaProfile#mRttMode
Hỗ trợ các phương thức sau trong
ImsCallSession
:sendRttMessage
sendRttModifyRequest
sendRttModifyResponse
Hỗ trợ gọi các phương thức sau trong
ImsCallSessionListener
:callSessionRttModifyRequestReceived
callSessionRttModifyResponseReceived
callSessionRttMessageReceived
Tuỳ chỉnh
Bạn có thể bật hoặc tắt tính năng này bằng cách sử dụng cấu hình thiết bị config_support_rtt
trong lớp phủ cấu hình thiết bị cho packages/services/Telephony
và cờ cấu hình nhà mạng CarrierConfigManager.RTT_SUPPORTED_BOOL
trong các tệp cấu hình nhà mạng.
Tuỳ thuộc vào cấu hình, tính năng này có thể có trong phần Cài đặt hỗ trợ tiếp cận hoặc không. Sử dụng cấu hình thiết bị để thay đổi chế độ cài đặt mặc định. Theo mặc định, tính năng này được đặt thành Tắt.
Xác nhận kết quả
Để xác thực việc triển khai RTT, hãy chạy các kiểm thử CTS và thực hiện kiểm thử RTT của trình quay số.
Thử nghiệm CTS
Các kiểm thử CTS (android.cts.telecom.RttOperationsTest
) bao gồm phần AOSP của quá trình triển khai. Bạn phải cung cấp các bài kiểm thử của riêng mình cho phần ngăn xếp IMS của quá trình triển khai.
Kiểm thử RTT trên ứng dụng Quay số
Mô tả tình huống | Bản mô phỏng giao diện người dùng |
---|---|
Nếu tính năng RTT bị tắt trên thiết bị, một hộp thoại về RTT sẽ xuất hiện. | |
Trong phần cài đặt của ứng dụng Quay số, bạn có thể truy cập vào màn hình Tin nhắn theo thời gian thực trong phần Cài đặt > Hỗ trợ tiếp cận. Màn hình này cung cấp một lựa chọn để chọn chế độ RTT khác. | |
Khi RTT được bật theo mặc định:
|
|
Nếu RTT bị tắt trên thiết bị:
|
|
Nếu RTT được bật trên thiết bị và được đặt mặc định để trả lời tất cả cuộc gọi ở chế độ RTT:
|
|
Trong giao diện người dùng trong cuộc gọi cho RTT, các lựa chọn được cung cấp để cho phép người dùng kiểm soát trạng thái của cuộc gọi thoại và nhận trợ giúp chung về cách sử dụng RTT:
|
|
Trong màn hình Chi tiết cuộc gọi, khi bạn chọn đường liên kết Xem bản chép lời, một chế độ xem toàn bộ cuộc trò chuyện sẽ xuất hiện cùng với toàn bộ văn bản của phiên RTT. Dấu thời gian sẽ xuất hiện. Người dùng có thể quay lại màn hình Chi tiết cuộc gọi bằng nút quay lại. |