本頁面介紹瞭如何在 Android 9 中實現實時文本 (RTT)。RTT 是一項針對聾人或聽力障礙用戶的功能,它取代了文本電話 (TTY) 技術。借助此功能,設備可以使用相同的電話號碼進行語音和 RTT 呼叫,在逐個字符的基礎上同時傳輸文本,支持 911 通信,並提供 TTY 向後功能。
在 RTT 呼叫中,呼叫者和接收者都有指示他們正在 RTT 呼叫中。連接後,雙方都會進入激活文本輸入和鍵盤的 RTT 呼叫。鍵入時,文本會出現並在鍵入時逐個字符地發送。
示例和來源
AOSP 中的Call.RttCall和Connection.RttTextStream提供了框架組件。 IMS/調製解調器組件是專有的,應該由 IMS/調製解調器供應商提供。撥號器 RTT 參考實現也可用。
RTT 的 AOSP 撥號程序代碼:
執行
要實現 RTT,您應該使用調製解調器/SoC 提供商,因為需要支持 RTT 的調製解調器。您可以升級到 Android 9 或將電話框架補丁列表反向移植到 Android 8.0。 Android 8.0 AOSP 中添加的 API 將不起作用。
此功能在android.telecom
的 AOSP 和android.telephony.ims
的 @SystemApis 中使用公共 API。所有 UI 都位於com.android.phone
和 AOSP 撥號器中。
要實現 RTT,請導入 AOSP 代碼並提供實現 IMS 端 @SystemApis for RTT 的 IMS 堆棧。這需要:
- 通過
ImsConfig#setProvisionedValue(RTT_SETTING_ENABLED)
打開/關閉 RTT - 通過
ImsStreamMediaProfile#mRttMode
指示呼叫的 RTT 狀態 在
ImsCallSession
中支持以下方法:-
sendRttMessage
-
sendRttModifyRequest
-
sendRttModifyResponse
-
支持在
ImsCallSessionListener
中調用以下方法:-
callSessionRttModifyRequestReceived
-
callSessionRttModifyResponseReceived
-
callSessionRttMessageReceived
-
定制
您可以在packages/services/Telephony
的設備配置覆蓋中使用設備配置config_support_rtt
以及在運營商配置文件中使用運營商配置標誌CarrierConfigManager.RTT_SUPPORTED_BOOL
來啟用或禁用此功能。根據配置,該功能可以通過輔助功能設置使用,也可以不使用。使用設備配置更改默認設置。默認情況下,該功能設置為關閉。
驗證
要驗證 RTT 的實現,請運行 CTS 測試並執行撥號器 RTT 測試。
CTS 測試
CTS 測試 ( android.cts.telecom.RttOperationsTest
) 涵蓋了實現的 AOSP 部分。您必須為實現的 IMS 堆棧部分提供您自己的測試。
撥號器 RTT 測試
場景描述 | 用戶界面模擬 |
---|---|
如果設備上禁用了 RTT,則會顯示有關 RTT 的橫幅。將顯示一個“了解更多”選項,該選項指向 Google 幫助中心文章頁面,其中包含有關 RTT 的更多信息。 顯示橫幅呼叫。 | |
在撥號器設置中,“實時文本”屏幕位於“設置”>“輔助功能”下,提供啟用“RTT 模式”的選項。顯示描述性文本以解釋該模式:“在通話期間發送和接收文本消息,而不是說和聽”。 | |
默認啟用 RTT 時,
| |
如果設備上禁用了 RTT:
| |
如果設備上啟用了 RTT,並且默認設置為以 RTT 應答所有呼叫:
| |
在 RTT 的通話界面中,提供了選項以允許用戶控制語音通話的狀態並獲得有關使用 RTT 的一般幫助。
| |
在“通話詳細信息”屏幕中,顯示了 RTT 對話歷史記錄的片段。
|