Implementar texto em tempo real

Esta página descreve como implementar mensagens de texto em tempo real (RTT) no Android 9. O RTT é um recurso para usuários surdos ou com perda 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 caractere por caractere, oferecer suporte a comunicações de emergência e fornecer capacidade de compatibilidade com versões anteriores com TTY.

Em uma chamada RTT, o autor e o destinatário têm indicações de que estão em uma chamada RTT. Quando conectados, os dois lados entram na chamada RTT, em que a entrada de texto e o teclado são ativados. Ao digitar, o texto aparece e é enviado à medida que é 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 de IMS/modem. A implementação de referência do RTT do discador também está disponível.

Código do discador AOSP para RTT:

Implementação

Para implementar o RTT, trabalhe com um provedor de modem/SoC, porque é necessário um modem que ofereça suporte ao RTT. Você pode fazer upgrade para o Android 9 ou fazer o backport de uma lista de patches do framework de telefonia para o Android 8.0. As APIs adicionadas no AOSP do Android 8.0 não funcionarão.

Esse recurso usa APIs públicas no AOSP em android.telecom e @SystemApis em android.telephony.ims. Toda a interface está em com.android.phone e no discador AOSP.

Para implementar o RTT, importe o código AOSP e forneça uma pilha IMS que implemente as @SystemApis do lado do IMS para RTT. Para isso, é necessário:

  • Ativar/desativar o RTT usando ImsConfig#setProvisionedValue(RTT_SETTING_ENABLED)
  • Indicar o status do RTT de uma chamada usando ImsStreamMediaProfile#mRttMode
  • Suporte aos seguintes métodos em ImsCallSession:

    • sendRttMessage
    • sendRttModifyRequest
    • sendRttModifyResponse
  • Suporte para chamar os seguintes métodos em ImsCallSessionListener:

    • callSessionRttModifyRequestReceived
    • callSessionRttModifyResponseReceived
    • callSessionRttMessageReceived

Personalização

Você pode 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 o flag de configuração da operadora, CarrierConfigManager.RTT_SUPPORTED_BOOL, nos arquivos de configuração da operadora. Dependendo da configuração, o recurso está 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 está definido como "Desativado".

Validação

Para validar a implementação do RTT, execute testes CTS e faça testes de RTT do discador.

Teste CTS

Os testes CTS (android.cts.telecom.RttOperationsTest) abrangem a parte 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 Simulação de interface
Se o RTT estiver desativado no dispositivo, uma caixa de diálogo sobre o RTT será exibida.

Banner de RTT

Nas configurações do Telefone, uma tela de Mensagem de texto em tempo real está disponível em Configurações > Acessibilidade que oferece uma opção para escolher um modo RTT diferente.

Acessibilidade do RTT

Quando o RTT está ativado por padrão:
  • Enquanto a chamada é feita, a interface de discagem padrão é exibida.
  • Após a conexão da chamada, a visualização do modo RTT é exibida. Se o usuário receptor não estiver no modo RTT por padrão, um banner indicando que o modo RTT foi solicitado será exibido enquanto aguarda uma resposta.

Interface RTT durante a chamada

Se o RTT estiver desativado no dispositivo:
  • A tela de chamada recebida mostra o disco de atendimento padrão e os rótulos de chamada padrão.

Interface de chamada padrão RTT

Se o RTT estiver ativado no dispositivo e tiver a configuração padrão para atender todas as chamadas como RTT:
  • A tela de chamada recebida mostra o disco RTT e os rótulos de chamada associados.
  • Atender a chamada carrega a visualização do modo RTT com o teclado ativado.

Visualização do modo RTT

Na interface de chamada para RTT, as opções são fornecidas para permitir que os usuários controlem o estado da ligação e recebam ajuda geral sobre como usar o RTT:
  • Ativar e desativar o microfone.
  • Ativar e desativar o alto-falante.
  • Usar o teclado como entrada.
  • Adicionar outra chamada.
  • Mudar para uma ligação de uma chamada RTT.
  • Ativar e desativar a espera.

Opções da interface RTT durante a chamada

Na tela "Detalhes da chamada", selecionar o link "Ver transcrição" mostra uma visualização de conversas com o texto completo da sessão RTT. As marcações de tempo são exibidas. O usuário pode retornar à tela "Detalhes da chamada" usando o botão "Voltar".

Detalhes da chamada RTT