本頁介紹如何在 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 中的公共 API 和android.telephony.ims
中的 @SystemApis 。所有 UI 都位於com.android.phone
和 AOSP 撥號器內。
若要實作 RTT,請匯入 AOSP 程式碼並提供一個 IMS 堆疊來實作 RTT 的 IMS 端 @SystemApis。這需要:
- 使用
ImsConfig#setProvisionedValue(RTT_SETTING_ENABLED)
開啟/關閉 RTT - 使用
ImsStreamMediaProfile#mRttMode
指示呼叫的 RTT 狀態 ImsCallSession
支援以下方法:-
sendRttMessage
-
sendRttModifyRequest
-
sendRttModifyResponse
-
支援在
ImsCallSessionListener
中呼叫以下方法:-
callSessionRttModifyRequestReceived
-
callSessionRttModifyResponseReceived
-
callSessionRttMessageReceived
-
客製化
您可以使用裝置設定config_support_rtt
(在packages/services/Telephony
的裝置設定覆蓋層中)和電信商設定標誌CarrierConfigManager.RTT_SUPPORTED_BOOL
(在電信商設定檔中)啟用或停用此功能。根據配置,此功能可以透過輔助功能設定使用,也可以不使用。使用設備配置更改預設設定。預設情況下,該功能設定為“關閉”。
驗證
若要驗證 RTT 的實現,請執行 CTS 測試並執行撥號器 RTT 測試。
CTS測試
CTS 測試 ( android.cts.telecom.RttOperationsTest
) 涵蓋了實作的 AOSP 部分。您必須為實施的 IMS 堆疊部分提供自己的測試。
撥號器 RTT 測試
場景描述 | 使用者介面模擬 |
---|---|
如果裝置上停用了 RTT,則會顯示有關 RTT 的對話方塊。 | |
在撥號器設定中, “設定”>“輔助功能”下提供了“即時文字”螢幕,其中提供了選擇不同 RTT 模式的選項。 | |
預設啟用 RTT 時:
| |
如果裝置上禁用了 RTT:
| |
如果裝置上啟用了 RTT 並且預設設定為以 RTT 方式應答所有呼叫:
| |
在 RTT 的通話 UI 中,提供了一些選項,讓使用者可以控制語音通話的狀態並獲得有關使用 RTT 的一般協助:
| |
在「呼叫詳細資料」畫面中,選擇「檢視記錄」連結會顯示包含 RTT 會話全文的完整對話視圖。顯示時間戳記。使用者可以使用後退按鈕返回到「呼叫詳細資料」畫面。 |