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

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

В вызове RTT и вызывающий, и принимающий имеют индикацию того, что они находятся в вызове RTT. При подключении обе стороны входят в вызов RTT, где активируется ввод текста и клавиатура. При наборе текста текст появляется и отправляется по мере его набора, символ за символом.

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

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

Код дозвона AOSP для 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 на стороне IMS для RTT. Для этого требуется:

  • Включение/выключение 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 в файлах конфигурации оператора. В зависимости от конфигурации функция либо доступна через настройки Accessibility, либо нет. Используйте конфигурацию устройства для изменения настроек по умолчанию. По умолчанию функция отключена.

Проверка

Чтобы проверить реализацию 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 во время вызова

На экране Call details при выборе ссылки See transcript отображается полный вид разговора с полным текстом сеанса RTT. Отображаются временные метки. Пользователь может вернуться на экран Call details с помощью кнопки Back.

Детали вызова RTT