На этой странице описывается, как реализовать текст в реальном времени (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. Отображается опция «Подробнее», которая ведет на страницу статьи Справочного центра Google с дополнительной информацией о RTT. Отображается баннер вызова. | |
В настройках номеронабирателя экран «Текст в реальном времени» доступен в разделе «Настройки»> «Доступность», который предоставляет возможность включить «режим RTT». Описательный текст отображается для объяснения режима: «Отправлять и получать текстовые сообщения вместо того, чтобы говорить и слушать во время вызова». | |
Когда RTT включен по умолчанию,
| |
Если RTT отключен на устройстве:
| |
Если на устройстве включен режим RTT и по умолчанию для ответа на все вызовы используется режим RTT:
| |
В пользовательском интерфейсе во время вызова для RTT предоставляются параметры, позволяющие пользователям контролировать состояние голосового вызова и получать общую помощь по использованию RTT.
| |
На экране «Сведения о вызове» отображается фрагмент истории разговоров RTT.
|