Implementando texto em tempo real

Esta página descreve como implementar texto em tempo real (RTT) no Android 9. RTT é um recurso para usuários surdos ou com deficiência auditiva que substitui a tecnologia de telefone de texto (TTY). Com esse recurso, os dispositivos podem usar o mesmo número de telefone para chamadas de voz e RTT, transmitir simultaneamente texto conforme ele é digitado caractere por caractere, suportar comunicações 911 e fornecer capacidade de retrocesso com TTY.

Em uma chamada RTT, tanto o chamador quanto o receptor têm indicações de que estão em uma chamada RTT. Quando conectados, ambos os lados entram na chamada RTT onde a entrada de texto e o teclado são ativados. Ao digitar, o texto aparece e é enviado conforme digitado, caractere por caractere.

Exemplos e fonte

Os componentes do framework estão disponíveis no AOSP em Call.RttCall e Connection.RttTextStream . Os componentes do IMS/modem são proprietários e devem ser fornecidos pelo fornecedor do IMS/modem. A implementação de referência do discador RTT também está disponível.

Código do discador AOSP para RTT:

Implementação

Para implementar o RTT, você deve trabalhar com um provedor de modem/SoC porque é necessário um modem que suporte RTT. Você pode atualizar para o Android 9 ou fazer backport de uma lista de patches da estrutura de telefonia para o Android 8.0. As APIs adicionadas no Android 8.0 AOSP não funcionarão.

Esse recurso usa APIs públicas em AOSP em android.telecom e @SystemApis em android.telephony.ims . Toda a interface do usuário 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 o @SystemApis do lado do IMS para RTT. Isto exige:

  • Ativando/desativando o RTT via ImsConfig#setProvisionedValue(RTT_SETTING_ENABLED)
  • Indicando o status RTT de uma chamada via ImsStreamMediaProfile#mRttMode
  • Suporte para os seguintes métodos em ImsCallSession :

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

    • callSessionRttModifyRequestReceived
    • callSessionRttModifyResponseReceived
    • callSessionRttMessageReceived

Costumização

Você pode habilitar ou desabilitar 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 sinalizador 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 por meio das configurações de Acessibilidade ou não. Use a configuração do dispositivo para alterar as configurações padrão. Por padrão, o recurso está definido como Desligado.

Validação

Para validar sua implementação de RTT, execute testes de CTS e teste de RTT de discador.

Teste CTS

Os testes CTS ( android.cts.telecom.RttOperationsTest ) cobrem a parte AOSP da implementação. Você deve fornecer seus próprios testes para a parte da pilha IMS da implementação.

Teste de discador RTT

Descrição do cenário simulação de interface do usuário

Se o RTT estiver desabilitado no dispositivo, um banner sobre o RTT será exibido. Uma opção "Saiba mais" que direciona para a página do artigo da Central de Ajuda do Google com mais informações sobre RTT é exibida.

A chamada de banner é exibida.

Faixa RTT

Nas configurações do Discador, uma tela "Texto em tempo real" está disponível em Configurações > Acessibilidade que oferece uma opção para ativar o "modo RTT". O texto descritivo é exibido para explicar o modo: "Enviar e receber mensagens de texto em vez de falar e ouvir durante uma chamada".

Acessibilidade RTT

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

IU de chamada RTT

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

IU de chamada padrão RTT

Se o RTT estiver habilitado no dispositivo e tiver o padrão definido para atender todas as chamadas como RTT:
  • A tela de chamada recebida exibe 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 do usuário durante a chamada para RTT, são fornecidas opções para permitir que os usuários controlem o estado da chamada de voz e obtenham ajuda geral sobre o uso do RTT.
  • Ative e desative o microfone.
  • Ative e desative o alto-falante.
  • Encaminhe o áudio para dispositivos de áudio externos, se disponíveis.

Opções de interface do usuário de chamada RTT

Na tela "Detalhes da chamada", é exibido um trecho do histórico da conversa RTT.
  • O snippet não excede uma linha de comprimento. Se a sessão RTT não incluiu nenhum conteúdo de conversa, é exibido um aviso indicando que nenhum conteúdo foi armazenado.
  • O snippet inclui o ícone RTT para indicar uma chamada RTT.
  • Selecionar o link "Ver tudo" exibe uma visualização completa da conversa com o texto completo da sessão RTT. Os carimbos de data/hora são exibidos. O usuário pode retornar à tela de detalhes da chamada usando o botão Voltar.

Detalhes da chamada RTT