На этой странице описывается, как реализовать текст в реальном времени (RTT) в Android 9. RTT — это функция для глухих или слабослышащих пользователей, которая заменяет технологию телетайпа (TTY). С помощью этой функции устройства могут использовать один и тот же номер телефона для голосовых и RTT-вызовов, одновременно передавать текст по мере его ввода посимвольно, поддерживать связь 911 и обеспечивать обратную связь с TTY.
В вызове RTT и вызывающий, и принимающий имеют индикацию того, что они находятся в вызове RTT. При подключении обе стороны входят в вызов RTT, где активируется ввод текста и клавиатура. При наборе текста текст появляется и отправляется по мере его набора, символ за символом.
Примеры и источник
Компоненты фреймворка доступны в AOSP в Call.RttCall и Connection.RttTextStream . Компоненты IMS/модема являются проприетарными и должны поставляться поставщиком IMS/модема. Также доступна эталонная реализация Dialer RTT.
Код дозвона AOSP для RTT:
- Входящий звонок: /java/com/android/incallui/rtt
- Журнал вызовов: /java/com/android/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 на стороне 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:
| |
На экране Call details при выборе ссылки See transcript отображается полный вид разговора с полным текстом сеанса RTT. Отображаются временные метки. Пользователь может вернуться на экран Call details с помощью кнопки Back. |