リアルタイム テキストの実装

このページでは、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 の詳細情報を記載した Google ヘルプセンターの記事ページにリダイレクトされます。

バナー呼び出しが表示されます。

RTT バナー

電話アプリの設定では、[設定] > [ユーザー補助機能] の [リアルタイム テキスト] 画面に「RTT モード」を有効にするオプションがあります。モードの説明として、「通話中に話したり聞いたりする代わりにテキスト メッセージを送受信します」という説明文が表示されます。

RTT ユーザー補助

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

RTT 通話 UI

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

RTT 標準通話 UI

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

RTT モードのビュー

RTT の通話 UI には、ユーザーが音声通話の状態をコントロールし、RTT の使用に関する一般的なヘルプを表示できるオプションがあります。
  • マイクのオンとオフを切り替えます。
  • スピーカーのオンとオフを切り替えます。
  • 外部オーディオ機器が利用可能な場合に、音声を転送します。

RTT 通話 UI のオプション

[通話の詳細] 画面に、RTT の会話履歴の抜粋が表示されます。
  • 抜粋は 1 行のみ表示されます。RTT セッションに会話コンテンツが含まれていない場合は、コンテンツが保存されていないことを示す通知が表示されます。
  • 抜粋には、RTT 通話を示す RTT アイコンが含まれます。
  • [すべて表示] リンクを選択すると、完全な会話ビューに RTT セッションの全文が表示されます。タイムスタンプが表示されます。戻るボタンを使用すれば [通話の詳細] 画面に戻ることができます。

RTT 通話の詳細