Todos os dispositivos móveis vendidos na Índia a partir de 1º de janeiro de 2017 deverão 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, esta funcionalidade destina-se exclusivamente a dispositivos vendidos no mercado indiano, mas pode ser incluída em todos os dispositivos vendidos em todo o mundo, uma vez que a funcionalidade 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 na ramificação principal e é ativado por padrão no Android 8.0 e versões superiores.
Este recurso está atualmente disponível nas seguintes ramificações 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 recursos de emergência de referência do AOSP podem selecionar os commits das ramificações aplicáveis em suas próprias compilações.
Filial | Confirmações |
---|---|
principal | e0c3c66 Adicionado recurso de recursos de emergência 42a4338 Adicionadas traduções para sequência de ação de emergência 4df8d64 Corrigido um problema em que a disponibilidade de emergência aparecia em tablets |
nougat-dev | e6680d9 Adicionado recurso de recursos de emergência 95e1865 Adicionadas traduções para sequência de ação de emergência a70bb89 Corrigido um problema em que o recurso de emergência aparecia em tablets |
marshmallow-dev | cd22634 Adicionado recurso de recursos de emergência 13f51c6 Adicionadas traduções para sequência de ação de emergência 6531666 Corrigido um problema em que o recurso de emergência aparecia em tablets |
pirulito-mr1-dev | 5fbc86b Adicionado recurso de recursos de emergência 1b60879 Adicionadas traduções para sequência de ação de emergência d74366f Corrigido um problema em que a disponibilidade 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 habilitado e ativado, o recurso fornece dois gatilhos 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 pelos regulamentos DoT indianos.
Uma chamada de emergência é iniciada por:
Pressionando longamente o botão EMERGÊNCIA na tela de bloqueio | Tocando na opção Emergência no menu de ação global |
---|---|
Este 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 Recursos 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 habilitado.
-
void performEmergencyCall()
. Inicia uma chamada de emergência. -
boolean needsEmergencyAffordance()
. Determina se o recurso deve estar ativo.
O recurso pode ser desabilitado permanentemente no momento da construção, alterando a constante EmergencyAffordanceManager.ENABLED
para false
. Isso fará com que needsEmergencyAffordance()
sempre retorne false e evite que o EmergencyAffordanceService
seja iniciado.
Serviço de Acessibilidade de Emergência
O EmergencyAffordanceService
é um serviço de 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 se nenhum cartão SIM estiver presente. Presume-se que a rede móvel permitirá o registo 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 Emergency Affordance. Se o tipo de configuração for:
- Resource , é um recurso interno definido em
frameworks/base/core/res/res/values/config.xml
. - Configuração , é 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 discado automaticamente quando a chamada de emergência é iniciada. Tipo: Corda Padrão: 112 |
Recurso | config_emergency_mcc_codes | Uma matriz de inteiros listando os MCCs nos quais o recurso deve estar ativo. Tipo: Matriz de inteiros Padrão: {404.405} |
Contexto | número_de_affordancedeemergência | Substituição da configuração global com o número para ligar com recursos de emergência. Isso só terá efeito em imagens de compilação depuráveis (ou seja, o tipo de compilação é userdebug ou eng). Isso se destina apenas a testes. Tipo: Corda Padrão: não definido |
Contexto | force_emergency_affordance | Configuração global, se a disponibilidade de emergência deve ser mostrada independentemente do estado do dispositivo. Isso se destina apenas a testes. Tipo: Booleano (1 ou 0) Padrão: não definido --> 0 |
Habilite chamadas de emergência para 112
O recurso 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 chamadas apenas à 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 emergência devem garantir que os dispositivos na Índia sempre habilitem o 112 como número de emergência no RIL.
Validação
Durante o teste 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 efetivamente 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 root 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 detecção de uma rede móvel indiana ou de inserção de um cartão SIM indiano.
adb shell settings put global force_emergency_affordance 1
No mínimo, recomenda-se testar os seguintes casos:
- Uma vez ativado, pressionar longamente o botão EMERGÊNCIA 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 estará presente e tocar nele iniciará 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 aparelho na presença de uma Rede Móvel Indiana, independente dos cartões SIM instalados.
Se um dispositivo incluir suporte para vários cartões SIM, o teste deverá garantir que a detecção do SIM MCC funcione corretamente em cada slot SIM. O recurso Emergency Affordance não é regido pela compatibilidade do Android, portanto, não há testes do Compatibility Test Suite (CTS) para ele.
perguntas frequentes
P. O número de emergência 112 ainda não foi ativado na Índia. Ainda deve ser usado?
112 é o número que será usado na Índia como Ponto de Atendimento de Segurança Pública (PSAP), conforme definido pelos Sistemas Integrados de Comunicações e Resposta a Emergências (IECRS). Até que o PSAP seja comissionado, todas as chamadas para o 112 serão encaminhadas para o número de emergência 100 existente (embora isto seja da responsabilidade da operadora e 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 é compatível com a 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 toques repetidos 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.