Esta página descreve como implementar o texto em tempo real (RTT, na sigla em inglês) no Android 9. A RTT é um recurso para usuários surdos ou com deficiência auditiva que substitui a tecnologia de teletipo (TTY). Com esse recurso, os dispositivos podem usar o mesmo número de telefone para chamadas de voz e RTT, transmitir texto simultaneamente à medida que ele é digitado, oferecer suporte a comunicações de emergência e oferecer compatibilidade com TTY.
Em uma chamada RTT, tanto o autor quanto o destinatário têm indicações de que estão em uma chamada RTT. Quando conectado, as duas partes entram na chamada RTT, em que a entrada de texto e o teclado são ativados. Ao digitar, o texto aparece e é enviado conforme é digitado, caractere por caractere.
Exemplos e origem
Os componentes do framework estão disponíveis no AOSP em Call.RttCall e Connection.RttTextStream. Os componentes IMS/modem são proprietários e precisam ser fornecidos pelo fornecedor IMS/modem. A implementação de referência do RTT do discador também está disponível.
Código do discador do AOSP para RTT:
- InCall: /java/com/android/incallui/rtt
- Registro de chamadas: /java/com/android/dialer/rtt
Implementação
Para implementar o RTT, você precisa trabalhar com um provedor de modem/SoC, porque é necessário um modem que ofereça suporte a ele. Você pode fazer upgrade para o Android 9 ou fazer o backport de uma lista de patches do framework de telefonia no Android 8.0. As APIs adicionadas no AOSP do Android 8.0 não vão funcionar.
Esse recurso usa APIs públicas no AOSP em android.telecom
e @SystemApis em
android.telephony.ims
. Toda a interface está dentro de com.android.phone
e do discador
do AOSP.
Para implementar o RTT, importe o código do AOSP e forneça uma pilha IMS que implemente as @SystemApis do lado do IMS para o RTT. Para isso, é necessário:
- Ativar/desativar a RTT usando
ImsConfig#setProvisionedValue(RTT_SETTING_ENABLED)
- Como indicar o status de RTT de uma chamada usando
ImsStreamMediaProfile#mRttMode
Compatibilidade com os seguintes métodos em
ImsCallSession
:sendRttMessage
sendRttModifyRequest
sendRttModifyResponse
Suporte para chamar os seguintes métodos em
ImsCallSessionListener
:callSessionRttModifyRequestReceived
callSessionRttModifyResponseReceived
callSessionRttMessageReceived
Personalização
É possível ativar ou desativar esse recurso usando a configuração do dispositivo,
config_support_rtt
, na sobreposição de configuração do dispositivo para
packages/services/Telephony
e a flag de configuração da operadora,
CarrierConfigManager.RTT_SUPPORTED_BOOL
, nos arquivos de configuração da operadora.
Dependendo da configuração, o recurso pode estar disponível nas
configurações de acessibilidade ou não. Use a configuração do dispositivo para mudar as configurações
padrão. Por padrão, o recurso fica desativado.
Validação
Para validar a implementação do RTT, execute testes CTS e testes de RTT do discador.
Testes CTS
Os testes CTS (android.cts.telecom.RttOperationsTest
) abrangem a parte do AOSP
da implementação. Você precisa fornecer seus próprios testes para a parte da pilha IMS
da implementação.
Teste de RTT do discador
Descrição do cenário | Mockup de interface |
---|---|
Se a RTT estiver desativada no dispositivo, uma caixa de diálogo sobre a RTT será mostrada. | |
Nas configurações do discador, uma tela de texto em tempo real está disponível em Configurações > Acessibilidade, com uma opção para escolher um modo RTT diferente. | |
Quando o RTT está ativado por padrão:
|
|
Se a RTT estiver desativada no dispositivo:
|
|
Se a RTT estiver ativada no dispositivo e tiver a configuração padrão
para atender todas as ligações como RTT:
|
|
Na interface da chamada para RTT, há opções que
permitem aos usuários controlar o estado da ligação e receber ajuda geral sobre
como usar a RTT:
|
|
Na tela "Detalhes da chamada", selecionar o link "Ver transcrição" mostra uma visualização completa da conversa com o texto completo da sessão de RTT. Os carimbos de data/hora são exibidos. O usuário pode retornar à tela de detalhes da chamada usando o botão "Voltar". |