本頁說明如何在 Android 9 中實作即時文字 (RTT)。即時文字訊息是失聰或聽障使用者的功能,可取代電傳打字機 (TTY) 技術。有了這項功能,裝置就能在語音和即時文字訊息通話中使用相同的電話號碼,在逐字元輸入時同時傳送文字、支援 911 通訊,並且提供 TTY 的回溯功能。
在即時文字訊息通話中,撥入者和接聽者都會收到即時文字訊息通話的通知。連線後,雙方都會進入即時文字訊息通話,並啟用文字輸入和鍵盤。輸入時,文字會一字一字顯示並傳送。
範例和來源
架構元件可在 AOSP 的 Call.RttCall 和 Connection.RttTextStream 中使用。IMS/modem 元件屬於專屬性,應由 IMS/modem 供應商提供。您也可以使用撥號器 RTT 參考實作項目。
RTT 的 Android 開放原始碼計畫撥號程式程式碼:
實作
如要實作 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 程式碼,並提供實作 RTT 的 IMS 端 @SystemApis 的 IMS 堆疊。這需要:
- 使用
ImsConfig#setProvisionedValue(RTT_SETTING_ENABLED)
開啟/關閉即時文字訊息 (RTT) - 使用
ImsStreamMediaProfile#mRttMode
表示通話的即時文字訊息狀態 支援
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 堆疊部分提供專屬測試。
撥號應用程式即時文字訊息測試
情境說明 | UI 模擬 |
---|---|
如果裝置上未啟用即時文字訊息功能,系統會顯示即時文字訊息對話方塊。 | |
在撥號程式設定中,您可以在「設定」>「無障礙」下找到「即時文字訊息」畫面,其中提供選項可選擇不同的即時文字訊息模式。 | |
如果預設啟用 RTT:
|
|
如果裝置已停用 RTT:
|
|
如果裝置已啟用即時文字訊息功能,且預設設定為以即時文字訊息形式接聽所有通話:
|
|
即時文字訊息的通話使用者介面有提供選項,可讓使用者控制語音通話狀態並取得即時文字訊息的使用說明:
|
|
在「Call details」(通話詳細資料) 畫面中,選取「See 轉錄稿」連結會顯示完整的對話檢視畫面,其中包含即時文字訊息工作階段的全文。系統會顯示時間戳記。使用者可以使用返回按鈕返回「Call Details」畫面。 |