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:
- 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 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. | |
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. | |
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 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:
|
|
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". |