На этой странице описано, как реализовать текст в режиме реального времени (RTT) в Android 9. RTT — это функция для глухих или слабослышащих пользователей, которая заменяет технологию телетайпа (TTY). Благодаря этой функции устройства могут использовать один и тот же номер телефона для голосовых вызовов и вызовов RTT, одновременно передавать текст по мере его ввода посимвольно, поддерживать связь 911 и обеспечивать обратную возможность с помощью TTY.
При вызове RTT и вызывающий абонент, и получатель имеют индикацию того, что они находятся в вызове RTT. При подключении обе стороны вводят вызов RTT, при котором активируется ввод текста и клавиатура. При наборе текст появляется и отправляется по мере набора, символ за символом.
Примеры и источник
Компоненты платформы доступны в AOSP по адресу Call.RttCall и Connection.RttTextStream . Компоненты IMS/модема являются собственностью компании и должны поставляться поставщиком IMS/модема. Также доступна эталонная реализация Dialer RTT.
Код дозвона AOSP для RTT:
- InCall: /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
в файлах конфигурации оператора связи. В зависимости от конфигурации эта функция либо доступна в настройках специальных возможностей, либо нет. Используйте конфигурацию устройства, чтобы изменить настройки по умолчанию. По умолчанию эта функция отключена.
Валидация
Чтобы проверить реализацию RTT, запустите тесты CTS и выполните тестирование RTT номеронабирателя.
CTS-тестирование
Тесты CTS ( android.cts.telecom.RttOperationsTest
) охватывают часть реализации AOSP. Вы должны предоставить свои собственные тесты для части реализации стека IMS.
Тестирование RTT дозвонщика
Описание сценария | макет пользовательского интерфейса |
---|---|
Если на устройстве отключен RTT, отображается диалоговое окно о RTT. | |
В настройках набора номера в разделе «Настройки» > «Доступность» доступен экран «Текст в реальном времени», на котором можно выбрать другой режим RTT. | |
Когда RTT включен по умолчанию:
| |
Если RTT отключен на устройстве:
| |
Если RTT включен на устройстве и по умолчанию настроен на ответ на все вызовы как RTT:
| |
В пользовательском интерфейсе вызова для RTT предусмотрены параметры, позволяющие пользователям контролировать состояние голосового вызова и получать общую справку по использованию RTT:
| |
На экране «Сведения о вызове» при выборе ссылки «Просмотреть расшифровку» отображается полное представление разговора с полным текстом сеанса RTT. Отображаются временные метки. Пользователь может вернуться к экрану сведений о вызове с помощью кнопки «Назад». |