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

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

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

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

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

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

Проверка

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