Implementar texto em tempo real

Esta página descreve como implementar texto em tempo real (RTT, na sigla em inglês) no Android 9. A 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 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 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 de 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 do 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. É possível fazer upgrade para o Android 9 ou fazer backport de uma lista de patches do framework de telefonia para o Android 8.0. As APIs adicionadas no Android 8.0 AOSP 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 do 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 o RTT usando ImsConfig#setProvisionedValue(RTT_SETTING_ENABLED)
  • Indicando o status da 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 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 sua implementação do RTT, execute testes do CTS e faça testes de RTT do discador.

Teste do 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 Simulação de interface
Se a RTT estiver desativada no dispositivo, uma caixa de diálogo sobre a RTT será mostrada.

Banner de RTT

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

Acessibilidade de RTT

Quando o RTT está ativado por padrão:
  • Enquanto a ligação é feita, a interface de discagem padrão é mostrada.
  • Quando a chamada é conectada, a visualização do modo RTT é exibida. Se o usuário que recebe a ligação não usar o modo RTT por padrão, um banner indicando que o modo RTT foi solicitado vai aparecer enquanto aguarda uma resposta.

Interface RTT em chamada

Se a RTT estiver desativada no dispositivo:
  • A tela de ligações recebidas mostra o botão de atendimento padrão e os rótulos de chamada padrão.

Interface de chamada padrão RTT

Se a RTT estiver ativada no dispositivo e definida como padrão para atender todas as chamadas como RTT:
  • A tela de chamada recebida mostra o disco de RTT e os rótulos de chamada associados.
  • Ao atender a chamada, a visualização do modo RTT é carregada com o teclado ativado.

Visualização do modo RTT

Na interface de RTT durante a chamada, há opções para permitir que os usuários controlem o estado da ligação e recebam ajuda geral sobre como usar o RTT:
  • Ligue e desligue o microfone.
  • Ative e desative o alto-falante.
  • Use o teclado como entrada.
  • Adicione outra chamada.
  • Alternar para uma chamada de voz em uma chamada RTT.
  • Ative e desative a espera.

Opções da interface de RTT durante a chamada

Na tela "Detalhes da chamada", selecione o link "Ver transcrição" para mostrar uma conversa completa com o texto completo da sessão de RTT. Os carimbos de data/hora são exibidos. O usuário pode voltar à tela "Detalhes da chamada" usando o botão "Voltar".

Detalhes da chamada RTT