Implementar texto em tempo real

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 que é digitado caractere por caractere, oferecer suporte a comunicações de emergência e oferecer capacidade de retorno com TTD.

Em uma chamada RTT, tanto o autor quanto 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 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 reservados 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:

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 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 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 à chamada dos 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 é 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 ela será mostrada.

Banner da RTT

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

Acessibilidade da RTT

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

Interface de chamada para RTT

Se a RTT estiver desativada no dispositivo:
  • A tela de ligação recebida exibe o marcador de atendimento padrão e os rótulos de chamada padrão.

IU padrão de ligação RTT

Se a RTT estiver ativada no dispositivo e tiver a configuração padrão para atender todas as ligações como RTT:
  • A tela de ligações recebidas mostra o disco de RTT e os marcadores de ligações associadas.
  • 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, há opções para permitir que os usuários controlem o estado da ligação e recebam ajuda geral sobre o uso de RTT:
  • Ligar e desligar o microfone.
  • Ative e desative o alto-falante.
  • Use o teclado como entrada.
  • Adicionar outra chamada.
  • Alternar para uma ligação de voz de uma ligação RTT.
  • Ative e desative o recurso.

Opções da interface RTT durante a chamada

Na tela "Detalhes da chamada", selecionar o link "Ver transcrição" exibe 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 "Detalhes da chamada" usando o botão "Voltar".

Detalhes da chamada RTT