リアルタイム テキストを実装する

このページでは、Android 9 でリアルタイム テキスト(RTT)を実装する方法について説明します。RTT は聴覚に障がいがあるユーザー向けの機能で、テレタイプライター(TTY)テクノロジーに代わるものです。この機能を使用すると、デバイスで音声通話と RTT 通話に同じ電話番号を使用したり、1 文字ずつ入力すると同時にテキストを送信したり、911 通話に対応したり、TTY との下位互換性を提供したりできます。

RTT 通話では、発信者と着信者の両方に RTT 通話中であることが示されます。接続すると両者で RTT 通話が開始され、テキスト入力とキーボードが有効になります。入力時には、テキストが表示されると同時に 1 文字ずつ送信されます。

例とソース

フレームワーク コンポーネントは、AOSP の Call.RttCallConnection.RttTextStream で入手できます。IMS とモデムのコンポーネントは独自のものであり、IMS とモデムのベンダーによって提供されます。電話アプリの RTT リファレンス実装も利用できます。

RTT 用の AOSP 電話アプリのコード:

実装

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 がデフォルトで有効になっている場合:
  • 発信中は、標準の通話ダイヤル UI が表示されます。
  • 通話が接続されると、RTT モードのビューが表示されます。着信側で RTT モードがデフォルトになっていない場合は、応答を待つ間、RTT モードがリクエストされたことを示すバナーが表示されます。

RTT 通話 UI

デバイスで RTT が無効になっている場合:
  • 着信画面に標準の応答パックと標準の通話ラベルが表示されます。

RTT 標準通話 UI

RTT がデバイスで有効になっていて、すべての通話に RTT で応答するようにデフォルト設定されている場合:
  • 着信画面に RTT パックと関連する通話ラベルが表示されます。
  • 通話に応答すると、RTT モードのビューが読み込まれてキーボードが有効になります。

RTT モードのビュー

RTT 通話 UI には、ユーザーが音声通話の状態を制御し、RTT の使用に関する一般的なヘルプを表示できる項目が用意されています。:
  • マイクのオンとオフを切り替えます。
  • スピーカーのオンとオフを切り替えます。
  • 入力としてキーパッドを使用します。
  • 別の通話を追加します。
  • RTT 通話から音声通話に切り替えます。
  • 保留のオンとオフを切り替えます。

RTT 通話 UI のオプション

[通話の詳細] 画面で、[文字起こしを見る] のリンクを選択すると、スレッド表示の全体を表示して RTT セッションのテキストの全文を確認できます。タイムスタンプが表示されます。戻るボタンを使用すれば [通話の詳細] 画面に戻ることができます。

RTT 通話の詳細