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.
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 |
---|---|
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.
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 eSimSlotNumber
é 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.