このページでは、Android 9 でリアルタイム テキスト(RTT)を実装する方法について説明します。RTT は聴覚に障がいがあるユーザー向けの機能で、テレタイプライター(TTY)テクノロジーに代わるものです。この機能を使用すると、デバイスで音声通話と RTT 通話に同じ電話番号を使用したり、1 文字ずつ入力すると同時にテキストを送信したり、911 通話に対応したり、TTY との下位互換性を提供したりできます。
RTT 通話では、発信者と着信者の両方に RTT 通話中であることが示されます。接続すると両者で RTT 通話が開始され、テキスト入力とキーボードが有効になります。入力時には、テキストが表示されると同時に 1 文字ずつ送信されます。
例とソース
フレームワーク コンポーネントは、AOSP の Call.RttCall と Connection.RttTextStream で入手できます。IMS とモデムのコンポーネントは独自のものであり、IMS とモデムのベンダーによって提供されます。電話アプリの RTT リファレンス実装も利用できます。
RTT 用の AOSP 電話アプリのコード:
- InCall: /java/com/android/incallui/rtt
- 通話履歴: /java/com/android/dialer/rtt
実装
RTT を実装するには、RTT をサポートするモデムが必要なため、モデムまたは SoC のプロバイダと連携する必要があります。Android 9 にアップグレードするか、Android 8.0 に電話通信フレームワークのパッチリストをバックポートできます。Android 8.0 AOSP で追加された API は利用できません。
この機能では、AOSP の android.telecom
の公開 API と android.telephony.ims
の @SystemApis が使用されます。UI はすべて com.android.phone
と AOSP の電話アプリ内にあります。
RTT を実装するには、AOSP コードを読み込み、RTT 用に IMS 側の @SystemApis を実装する 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 テスト
シナリオの説明 | UI モック |
---|---|
デバイスで RTT が無効になっている場合は、RTT に関するダイアログが表示されます。 | |
電話設定の、[設定] > [ユーザー補助] にある [リアルタイム テキスト] 画面で、別の RTT モードを選択するためのオプションを利用できます。 | |
RTT がデフォルトで有効になっている場合:
|
|
デバイスで RTT が無効になっている場合:
|
|
RTT がデバイスで有効になっていて、すべての通話に RTT で応答するようにデフォルト設定されている場合:
|
|
RTT 通話 UI には、ユーザーが音声通話の状態を制御し、RTT の使用に関する一般的なヘルプを表示できる項目が用意されています。:
|
|
[通話の詳細] 画面で、[文字起こしを見る] のリンクを選択すると、スレッド表示の全体を表示して RTT セッションのテキストの全文を確認できます。タイムスタンプが表示されます。戻るボタンを使用すれば [通話の詳細] 画面に戻ることができます。 |