Реализация текста в реальном времени

На этой странице описано, как реализовать передачу текста в реальном времени (RTT) в Android 9. RTT — это функция для глухих или слабослышащих пользователей, заменяющая технологию телетайпа (TTY). Благодаря этой функции устройства могут использовать один и тот же номер телефона для голосовых вызовов и вызовов RTT, одновременно передавать текст по мере его ввода, посимвольно, поддерживать связь с экстренными службами 911 и обеспечивать обратную связь с TTY.

В режиме RTT (Return on Time — вызов по времени) и вызывающий, и принимающий абонент получают информацию о том, что они находятся в режиме RTT. После установления соединения обе стороны подключаются к вызову RTT, где активируются ввод текста и клавиатура. При наборе текста он отображается и передается по мере ввода, символ за символом.

Примеры и источник

Компоненты фреймворка доступны в AOSP по адресам Call.RttCall и Connection.RttTextStream . Компоненты IMS/модема являются проприетарными и должны предоставляться поставщиком IMS/модема. Также доступна эталонная реализация RTT для дозвонщика.

Код AOSP Dialer для RTT:

Выполнение

Для реализации RTT вам потребуется сотрудничать с поставщиком модема/SoC, поскольку модем должен поддерживать RTT. Вы можете обновиться до Android 9 или перенести список патчей для фреймворка телефонии в Android 8.0. API, добавленные в Android 8.0 AOSP, работать не будут.

Эта функция использует общедоступные API из AOSP в android.telecom и @SystemApis в android.telephony.ims . Весь пользовательский интерфейс находится в com.android.phone и в AOSP-звонилке.

Для реализации RTT необходимо импортировать код AOSP и предоставить стек IMS, реализующий аннотацию @SystemApis для RTT на стороне IMS. Для этого требуется:

  • Включение/выключение RTT с помощью ImsConfig#setProvisionedValue(RTT_SETTING_ENABLED)
  • Отображение статуса RTT вызова с помощью ImsStreamMediaProfile#mRttMode
  • В ImsCallSession поддерживаются следующие методы:

    • sendRttMessage
    • sendRttModifyRequest
    • sendRttModifyResponse
  • Поддерживается вызов следующих методов в ImsCallSessionListener :

    • callSessionRttModifyRequestReceived
    • callSessionRttModifyResponseReceived
    • callSessionRttMessageReceived

Настройка

Включить или отключить эту функцию можно с помощью параметра конфигурации устройства config_support_rtt в оверлее конфигурации устройства для packages/services/Telephony , а также флага конфигурации оператора связи CarrierConfigManager.RTT_SUPPORTED_BOOL в файлах конфигурации оператора. В зависимости от конфигурации, функция либо доступна через настройки специальных возможностей, либо нет. Используйте конфигурацию устройства для изменения настроек по умолчанию. По умолчанию функция отключена.

Валидация

Для проверки правильности вашей реализации RTT запустите тесты CTS и проведите тестирование RTT для дозвонщика.

тестирование CTS

Тесты CTS ( android.cts.telecom.RttOperationsTest ) охватывают часть реализации, относящуюся к AOSP. Для части реализации, относящейся к стеку IMS, необходимо предоставить собственные тесты.

Тестирование RTT дозвонщика

Описание сценария макет пользовательского интерфейса
Если функция RTT отключена на устройстве, отобразится диалоговое окно, касающееся RTT.

баннер RTT

В настройках номеронабирателя в разделе «Настройки» > «Специальные возможности» доступен экран «Текст в реальном времени», где можно выбрать другой режим отображения текста в реальном времени.

доступность RTT

Когда RTT включен по умолчанию:
  • Во время совершения вызова отображается стандартный интерфейс набора номера.
  • После установления соединения отображается режим RTT. Если принимающий пользователь не переключается в режим RTT по умолчанию, во время ожидания ответа отображается сообщение о том, что был запрошен режим RTT.

Пользовательский интерфейс RTT во время разговора

Если на устройстве отключена функция RTT:
  • На экране входящего вызова отображается стандартная кнопка автоответчика и стандартные обозначения вызова.

Пользовательский интерфейс стандартного вызова RTT

Если на устройстве включена функция RTT и по умолчанию установлено отвечать на все вызовы через RTT:
  • На экране входящего вызова отображается индикатор RTT и соответствующие метки вызова.
  • При ответе на звонок загружается режим RTT с включенной клавиатурой.

режим просмотра RTT

В пользовательском интерфейсе RTT во время разговора предусмотрены опции, позволяющие пользователям управлять состоянием голосового вызова и получать общую справку по использованию RTT:
  • Включайте и выключайте микрофон.
  • Включайте и выключайте динамик.
  • Используйте клавиатуру в качестве устройства ввода.
  • Добавить еще один вызов.
  • Переключитесь с вызова RTT на голосовой.
  • Включение и выключение функции удержания.

Параметры пользовательского интерфейса RTT во время разговора

На экране сведений о звонке выбор ссылки «Посмотреть стенограмму» отображает полную запись разговора с полным текстом сеанса RTT. Отображаются временные метки. Пользователь может вернуться на экран сведений о звонке, используя кнопку «Назад».

Подробности вызова RTT