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

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

Проверка

Чтобы проверить свою реализацию RTT, запустите тесты CTS и выполните тестирование RTT номеронабирателя.

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

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

Тестирование RTT номеронабирателя

Описание сценария макет пользовательского интерфейса

Если RTT отключен на устройстве, отображается баннер о RTT. Отображается опция «Подробнее», которая ведет на страницу статьи Справочного центра Google с дополнительной информацией о RTT.

Отображается баннер вызова.

РТТ-баннер

В настройках номеронабирателя экран «Текст в реальном времени» доступен в разделе «Настройки»> «Доступность», который предоставляет возможность включить «режим RTT». Описательный текст отображается для объяснения режима: «Отправлять и получать текстовые сообщения вместо того, чтобы говорить и слушать во время вызова».

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

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

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

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

Интерфейс стандартного вызова RTT

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

Просмотр в режиме RTT

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

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

На экране «Сведения о вызове» отображается фрагмент истории разговоров RTT.
  • Длина сниппета не превышает одной строки. Если сеанс RTT не включал в себя никакого содержимого разговора, отображается уведомление о том, что содержимое не было сохранено.
  • Фрагмент содержит значок RTT, указывающий на вызов RTT.
  • При выборе ссылки «Просмотреть все» отображается полное представление беседы с полным текстом сеанса RTT. Отображаются временные метки. Пользователь может вернуться к экрану сведений о вызове с помощью кнопки «Назад».

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