Implementação do Auxílio de Emergência

Todos os dispositivos móveis vendidos na Índia a partir de 1º de janeiro de 2017 devem fornecer um botão de pânico para atender aos requisitos do Departamento de Telecomunicações da Índia (DoT). Para atender a esses requisitos regulatórios, o Android inclui uma implementação de referência do recurso Emergency Affordance para ativar um botão de pânico em dispositivos Android.

Esse recurso é ativado por padrão no Android 8.0 e versões superiores, mas deve ser corrigido em versões existentes de versões anteriores. Atualmente, esse recurso é direcionado exclusivamente a dispositivos vendidos no mercado indiano, mas pode ser incluído em todos os dispositivos vendidos em todo o mundo, pois o recurso não tem efeito fora da Índia.

Exemplos e fonte

O recurso Emergency Affordance é implementado nas estruturas/projeto base do Android Open Source Project (AOSP). Ele está disponível no branch master e é habilitado por padrão no Android 8.0 e versões superiores.

Esse recurso está atualmente disponível nos seguintes branches e commits. Essas informações são fornecidas para permitir que os fabricantes de dispositivos corrijam facilmente as alterações necessárias em suas compilações existentes. Os fabricantes de dispositivos que desejam implementar o recurso de affordance de emergência de referência AOSP podem selecionar os commits das ramificações aplicáveis ​​em suas próprias compilações.

Tabela 1. Escolhas para o recurso de affordance de emergência de referência AOSP

Ramo Compromissos
mestre e0c3c66 Adicionado recurso de affordance de emergência
42a4338 Adicionadas traduções para string de ação de emergência
4df8d64 Corrigido um problema em que a affordance de emergência aparecia em tablets
nougat-dev e6680d9 Adicionado recurso de affordance de emergência
95e1865 Adicionadas traduções para string de ação de emergência
a70bb89 Corrigido um problema em que a affordance de emergência aparecia em tablets
marshmallow-dev cd22634 Adicionado recurso de affordance de emergência
13f51c6 Adicionadas traduções para string de ação de emergência
6531666 Corrigido um problema em que a affordance de emergência seria exibida em tablets
pirulito-mr1-dev 5fbc86b Adicionado recurso de affordance de emergência
1b60879 Adicionadas traduções para string de ação de emergência
d74366f Corrigido um problema em que a affordance de emergência aparecia em tablets

Implementação

O recurso Emergency Affordance não faz alterações nas APIs expostas por meio do Android Software Development Kit (SDK). Quando ativado e ativado, o recurso fornece dois acionadores que podem iniciar uma chamada de emergência para 112, que é o único número de emergência a ser usado na Índia e exigido pelas regulamentações indianas de DoT.

Uma chamada de emergência é iniciada por:

Pressão longa no botão EMERGÊNCIA
na tela de bloqueio
Tocando na opção Emergência
no menu de ação global
botão de emergência
Figura 1. Botão EMERGENCY na tela de bloqueio.
opção de emergência
Figura 2. Ação de emergência no menu de ação global (acessado pressionando longamente a tecla liga/desliga).

Esse recurso apresenta os seguintes componentes internos:

  • EmergencyAffordanceManager
    frameworks/base/core/java/com/android/internal/policy/EmergencyAffordanceManager.java
    
  • EmergencyAffordanceService
    frameworks/base/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java
    

Gerente de Acessibilidade de Emergência

O EmergencyAffordanceManager fornece uma API interna para usar o recurso Emergency Affordance. Ele fornece métodos para iniciar a chamada de emergência e consultar em tempo de execução se o recurso deve ser ativado.

  • void performEmergencyCall() . Inicia uma chamada de emergência.
  • boolean needsEmergencyAffordance() . Determina se o recurso deve estar ativo.

O recurso pode ser desabilitado permanentemente em tempo de compilação alterando a constante EmergencyAffordanceManager.ENABLED para false . Isso fará com que needsEmergencyAffordance() sempre retorne false e impeça que o EmergencyAffordanceService seja iniciado.

Serviço de Acessibilidade de Emergência

O EmergencyAffordanceService é um serviço do sistema que monitora o Mobile Country Code (MCC) de todas as redes celulares detectadas e o MCC dos cartões SIM instalados. Se algum dos cartões SIM instalados ou redes celulares detectadas tiver um MCC correspondente a um dos MCCs da Índia (404 ou 405), o recurso será ativado. Isso significa que o recurso pode ser ativado na Índia, mesmo que nenhum cartão SIM esteja presente. Supõe-se que a rede móvel permitirá o registro para chamadas de emergência mesmo sem um cartão SIM instalado. O recurso permanecerá ativado até que um SIM não indiano seja instalado e nenhuma das redes detectadas tenha um MCC correspondente.

Os seguintes recursos e configurações afetam o comportamento do recurso de atendimento de emergência. Se o tipo de configuração for:

  • Resource , é um recurso interno definido em frameworks/base/core/res/res/values/config.xml .
  • Setting , é uma configuração armazenada no provedor de configurações do sistema.

Tabela 2. Configurações que afetam o comportamento do recurso de affordance de emergência

Tipo de configuração Nome Descrição
Recurso config_emergency_call_number O número de telefone que é discado automaticamente quando a chamada de emergência é iniciada.
Tipo: Corda
Padrão: 112
Recurso config_emergency_mcc_codes Uma matriz de números inteiros listando as MCCs nas quais o recurso deve estar ativo.
Tipo: matriz de inteiros
Padrão: {404.405}
Contexto Emergency_affordance_number Substituição da configuração global com o número a ser chamado com a affordance de emergência. Isso só terá efeito em imagens de compilação depuráveis ​​(ou seja, o tipo de compilação é userdebug ou eng). Este é destinado apenas para teste.
Tipo: Corda
Padrão: não definido
Contexto force_emergency_affordance Configuração global, se a affordance de emergência deve ser mostrada independentemente do estado do dispositivo. Este é destinado apenas para teste.
Tipo: booleano (1 ou 0)
Padrão: não definido --> 0

Ativar chamadas de emergência para 112

O recurso de affordance de emergência conecta a chamada usando o discador de emergência para que a chamada possa ser conectada quando a tela de bloqueio estiver ativa. O discador de emergência conecta as chamadas somente à lista de números fornecida pela Radio Interface Layer (RIL) através da propriedade do sistema:

  • ril.ecclist quando nenhum SIM está instalado.
  • ril.ecclist SimSlotNumber quando um SIM é inserido e SimSlotNumber é o ID do slot do assinante padrão.

Os fabricantes de dispositivos que usam o recurso de affordance de emergência devem garantir que os dispositivos na Índia sempre habilitem o 112 como um número de emergência no RIL.

Validação

Ao testar em uma compilação depurável, o número chamado pode ser alterado com o seguinte comando:

adb shell settings put global emergency_affordance_number NUMBER_TO_CALL

Embora essa configuração possa ser definida em uma compilação de usuário normal, ela será ignorada. Para realmente conectar a chamada, o número deve estar na lista de números de emergência fornecida pelo RIL. Isso pode ser definido temporariamente usando o seguinte comando executado a partir de um shell raiz em um dispositivo userdebug:

setprop ril.ecclist "$(getprop ril.ecclist),NUMBER_TO_CALL"

O comando a seguir também pode ser usado para forçar a ativação do recurso Emergency Affordance mesmo na ausência de uma rede móvel indiana sendo detectada ou de um cartão SIM indiano sendo inserido.

adb shell settings put global force_emergency_affordance 1

No mínimo, é recomendável testar os seguintes casos:

  • Uma vez ativado, pressionar longamente o botão EMERGENCY na tela de bloqueio (Figura 1) inicia uma chamada para o número de emergência especificado.
  • Uma vez ativado, o item Emergência no Menu de Ação Global está presente e ao tocar nele inicia uma chamada para o número de emergência especificado.
  • O recurso não é ativado na ausência de uma rede móvel indiana detectada com um cartão SIM não indiano instalado.
  • O recurso é ativado no dispositivo quando um cartão SIM indiano é instalado, independentemente das redes móveis detectadas.
  • O recurso é ativado no dispositivo na presença de uma rede móvel indiana, independentemente dos cartões SIM instalados.

Se um dispositivo inclui suporte a vários cartões SIM, o teste deve garantir que a detecção do SIM MCC funcione corretamente em cada slot do SIM. O recurso Emergency Affordance não é regido pela compatibilidade do Android, portanto, não há testes de Compatibility Test Suite (CTS) para ele.

perguntas frequentes

P. O número de emergência 112 ainda não foi comissionado na Índia. Ainda deve ser usado?

112 é o número que será usado na Índia como o Posto de Atendimento de Segurança Pública (PSAP), conforme definido pelos Sistemas Integrados de Comunicação e Resposta a Emergências (IECRS). Até que o PSAP seja comissionado, todas as chamadas para 112 serão roteadas para o número de emergência 100 existente (embora isso seja responsabilidade da operadora, não do Android).

P. E quanto a outros gatilhos, como pressionar três vezes o botão liga / desliga?

Os fabricantes de dispositivos podem optar por implementar gatilhos adicionais. No entanto, embora o DoT indiano aprove o toque triplo no botão liga / desliga do hardware, esse gatilho não é suportado na implementação de referência AOSP, pois alguns aplicativos amplamente usados ​​(por exemplo, o aplicativo Câmera) usam gestos do botão liga / desliga que incluem toque repetido no botão liga / desliga. Esses aplicativos podem interferir no discador de emergência ou o usuário pode acionar acidentalmente o botão de pânico ao tentar acionar ações nesses aplicativos.