このページでは、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 の詳細情報を記載した Google ヘルプセンターの記事ページにリダイレクトされます。 バナー呼び出しが表示されます。 |
|
電話アプリの設定では、[設定] > [ユーザー補助機能] の [リアルタイム テキスト] 画面に「RTT モード」を有効にするオプションがあります。モードの説明として、「通話中に話したり聞いたりする代わりにテキスト メッセージを送受信します」という説明文が表示されます。 | |
RTT がデフォルトで有効になっている場合:
|
|
デバイスで RTT が無効になっている場合:
|
|
RTT がデバイスで有効になっていて、すべての通話に RTT で応答するようにデフォルト設定されている場合:
|
|
RTT の通話 UI には、ユーザーが音声通話の状態をコントロールし、RTT の使用に関する一般的なヘルプを表示できるオプションがあります。
|
|
[通話の詳細] 画面に、RTT の会話履歴の抜粋が表示されます。
|