本頁說明如何在 Android 9 中實作即時文字訊息 (RTT)。即時文字訊息功能適用於失聰或聽障使用者,可取代電傳打字機 (TTY) 技術。這項功能可讓裝置使用同一組電話號碼撥打語音和即時文字訊息電話、在輸入文字時逐字傳送、支援 911 通訊,以及提供 TTY 回溯功能。
在即時文字訊息通話中,來電者和通話對象都會看到自己正在進行即時文字訊息通話的指標。連線後,雙方都會進入即時文字訊息通話,並啟用文字輸入和鍵盤。輸入文字時,系統會逐字元顯示並傳送文字。
範例和來源
架構元件位於 Android 開放原始碼計畫的「Call.RttCall」和「Connection.RttTextStream」。IMS/數據機元件為專屬元件,應由 IMS/數據機供應商提供。我們也提供撥號器 RTT 參考實作。
Android 開放原始碼計畫撥號器即時文字訊息通話代碼:
- InCall: /java/com/android/incallui/rtt
- 通話記錄: /java/com/android/dialer/rtt
實作
如要實作 RTT,請與數據機/SoC 供應商合作,因為必須使用支援 RTT 的數據機。您可以升級至 Android 9,或將一系列電話架構修補程式回溯移植到 Android 8.0。Android 8.0 開放原始碼計畫中新增的 API 無法運作。
這項功能會使用 AOSP 中的公開 API (位於 android.telecom
) 和 @SystemApis (位於 android.telephony.ims
)。所有 UI 都位於 com.android.phone
和 AOSP 撥號器中。
如要導入 RTT,請匯入 AOSP 程式碼,並提供實作 IMS 端 @SystemApis 的 IMS 堆疊,以供 RTT 使用。請按照下列步驟操作:
- 使用「
ImsConfig#setProvisionedValue(RTT_SETTING_ENABLED)
」開啟/關閉即時文字訊息功能 - 使用
ImsStreamMediaProfile#mRttMode
指示通話的即時文字訊息狀態 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 測試
情境說明 | UI 模擬畫面 |
---|---|
如果裝置已停用即時文字訊息功能,系統會顯示即時文字訊息對話方塊。 | |
在「撥號」設定中,依序前往「設定」>「無障礙設定」,即可找到「即時文字訊息」畫面,並選擇其他 RTT 模式。 | |
如果 RTT 預設為啟用:
|
|
如果裝置已停用即時文字訊息:
|
|
如果裝置已啟用即時文字訊息功能,且預設設定為以即時文字訊息接聽所有來電:
|
|
在即時文字訊息的通話中 UI 中,系統會提供選項,讓使用者控制語音通話的狀態,並取得即時文字訊息的一般使用說明:
|
|
在「通話詳細資料」畫面中選取「查看文字記錄」連結,即可查看完整對話,包括即時文字訊息通話的全文。系統會顯示時間戳記。使用者可以按返回鍵返回「通話詳細資料」畫面。 |