Todos os dispositivos móveis vendidos na Índia a partir de 1o de janeiro de 2017 precisam ter uma para atender aos requisitos do Departamento de Telecomunicações (DoT, na sigla em inglês) da Índia. Para cumprir esses requisitos regulatórios, o Android inclui uma referência implementação do recurso Affordance de Emergência para ativar um botão de pânico em Dispositivos Android.
Esse recurso é ativado por padrão no Android 8.0 e em versões mais recentes, precisam ser corrigidos em builds atuais de versões anteriores. Isso é segmentado exclusivamente para dispositivos vendidos no mercado indiano, mas pode ser incluídos em todos os dispositivos vendidos em todo o mundo, pois o recurso não tem efeito fora da Índia.
Exemplos e origem
O recurso Affordance de emergência é implementado no Android Open Source Projeto (AOSP) frameworks/base (em inglês) em um projeto de IA. Ele está disponível na ramificação principal e é ativado por padrão em Versões do Android 8.0 e mais recentes.
No momento, esse recurso está disponível nas seguintes ramificações e commits. Essas informações são fornecidas para permitir que os fabricantes de dispositivos corrijam facilmente o as mudanças necessárias nos builds atuais. os fabricantes de dispositivos que querem implementar o recurso de funcionalidade de emergência de referência do AOSP pode selecionar a dedo os commits das ramificações aplicáveis para seus próprios builds.
Filial | Commits |
---|---|
principal | e0c3c66 (link em inglês)
Recurso de funcionalidade de emergência adicionado 42a4338 Traduções adicionadas para a string de ação de emergência 4df8d64 Correção de um problema em que a funcionalidade de emergência era exibida em tablets |
Nougat-dev | e6680d9 (link em inglês)
Recurso de funcionalidade de emergência adicionado 95e1865 Traduções adicionadas para a string de ação de emergência a70bb89 Correção de um problema em que a funcionalidade de emergência era exibida em tablets |
desenvolvimento de marshmallow | cd22634 (link em inglês)
Recurso de funcionalidade de emergência adicionado 13f51c6 (link em inglês) Traduções adicionadas para a string de ação de emergência 6531666 Correção de um problema em que a funcionalidade de emergência era exibida em tablets |
lollipop-mr1-dev | 5fbc86b (link em inglês)
Recurso de funcionalidade de emergência adicionado 1b60879 (link em inglês) Traduções adicionadas para a string de ação de emergência d74366f Correção de um problema em que a funcionalidade de emergência era exibida em tablets |
Implementação
O recurso de acessibilidade emergencial não altera as APIs expostas pelo o kit de desenvolvimento de software (SDK) do Android. Quando ativada e ativada, fornece dois gatilhos que podem iniciar uma chamada de emergência para o 112, que é o número de emergência único a ser usado na Índia e exigido pelo governo indiano regulamentações DoT.
Uma chamada de emergência é iniciada por:
Toque e mantenha pressionado o botão de EMERGÊNCIA no tela de bloqueio |
Tocando na opção Emergência no Menu de ações globais |
---|---|
|
|
Esse recurso apresenta os seguintes componentes internos:
- Gerente de Emergência
frameworks/base/core/java/com/android/internal/policy/EmergencyAffordanceManager.java
- Serviço de acessibilidade de emergência
frameworks/base/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java
Gerente de Emergência
O EmergênciaAffordanceManager fornece uma API interna para usar o Recurso de acessibilidade. oferece métodos para iniciar a chamada de emergência e consulta no ambiente de execução se o recurso precisa ser ativado.
void performEmergencyCall()
: Inicia uma chamada de emergência.boolean needsEmergencyAffordance()
: Determina se o atributo deve estar ativa.
O recurso pode ser permanentemente desativado no tempo de compilação alterando o
Constante EmergencyAffordanceManager.ENABLED
para false
.
Isso fará com que needsEmergencyAffordance()
sempre retorne "false"
e impede que a EmergencyAffordanceService
seja iniciada.
Serviço de acessibilidade de emergência
O EmergencyAffordanceService
é um serviço do sistema que monitora
O código de país móvel (MCC, na sigla em inglês) de todas as redes celulares detectadas e a MCC
dos chips instalados. Se um dos chips instalados ou detectado
redes celulares têm uma MCC correspondente a uma das MCCs da Índia (404 ou 405), então a
será ativado. Isso significa que o recurso pode ser ativado na Índia mesmo que
não há um chip. Pressupõe-se que a rede móvel permita
para chamadas de emergência, mesmo sem um chip instalado. O recurso
vai continuar ativado até que um chip que não seja da Índia seja instalado e nenhuma das
têm uma MCC correspondente.
Os recursos e configurações a seguir afetam o comportamento do Alerta de emergência Recurso de acessibilidade. Se o tipo de configuração for:
- Recurso, é um recurso interno definido em
frameworks/base/core/res/res/values/config.xml
- Configuração, é uma configuração armazenada nas configurações do sistema. de nuvem.
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 é
iniciado. Tipo: String Padrão: 112 |
Recurso | config_emergency_mcc_codes | Uma matriz de números inteiros listando as MCCs em que o recurso deve estar ativo. Tipo: matriz de números inteiros Padrão: {404.405} |
Configuração | número_a_affordance_emergência | Substituição da configuração global pelo número a ser chamado com a emergência
affordance. Isso tem efeito somente em imagens de build depuráveis (ou seja, imagens de build
o tipo é userdebug ou eng). Isso é feito apenas para testes. Tipo: String Padrão: não configurado |
Configuração | force_emergency_affordance | Configuração global, se a funcionalidade de emergência deve ser exibida independentemente
do estado do dispositivo. Isso é feito apenas para testes. Tipo: Boolean (1 ou 0) Padrão: não definido --> 0 |
Ativar chamadas de emergência para o 112
O recurso de funcionalidade de emergência conecta a chamada usando o discador para que a chamada possa ser conectada quando a tela de bloqueio estiver ativa. A o discador de emergência conecta as chamadas apenas à lista de números fornecida pelo Camada de interface de rádio (RIL, na sigla em inglês) com a propriedade do sistema:
ril.ecclist
quando nenhum chip está instalado.ril.ecclistSimSlotNumber
quando um chip é inserido eSimSlotNumber
é o ID do slot do padrão assinante.
Fabricantes de dispositivos que usam o recurso de funcionalidade de emergência precisam garantir que dispositivos na Índia sempre ativam o 112 como um número de emergência no RIL.
Validação
Ao testar em um build depurável, o número chamado pode ser alterado. pelo seguinte comando:
adb shell settings put global emergency_affordance_number NUMBER_TO_CALL
Embora essa configuração possa ser definida em um build normal do usuário, ela será ignorada. Para que a ligação seja estabelecida, o número precisa estar na lista de emergências fornecidos pelo RIL. Isso pode ser definido temporariamente usando o seguinte executado em 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 o acesso recurso esteja ativado mesmo na ausência de uma rede móvel na Índia detectado ou um chip indiano está sendo inserido.
adb shell settings put global force_emergency_affordance 1
Recomendamos testar pelo menos os seguintes casos:
- Depois de ativado, toque e mantenha pressionado o botão EMERGÊNCIA no a tela de bloqueio (figura 1) inicia uma chamada para o número de emergência especificado.
- Quando ativado, o item Emergência na ação global O menu está presente e um toque inicia uma chamada para a emergência especificada número
- O recurso não é ativado na ausência de um Detectamos a Indian Mobile Network com um chip instalado que não é da Índia.
- O recurso é ativado no dispositivo quando um chip indiano está instalado, independentemente das redes móveis detectadas.
- O recurso será ativado no dispositivo na presença de uma rede móvel indiana, independentemente do chip instalado.
Se um dispositivo for compatível com vários chips, o teste deve garantir se a detecção do MCC do chip funciona corretamente em cada slot do chip. A emergência O recurso de acessibilidade não é regido pela compatibilidade com o Android, portanto não há Testes de compatibilidade (CTS, na sigla em inglês) para ele.
Perguntas frequentes
P: O número de emergência 112 ainda não foi comissionado em Índia. Ele ainda deve ser usado?
112 é o número que vai ser usado na Índia como a Resposta de Segurança Pública Ponto (PSAP, na sigla em inglês), conforme definido pelas Comunicações e Resposta de Emergência Integradas de segurança na nuvem (IECRS, na sigla em inglês). Até que o PSAP seja comissionado, todas as ligações para o número 112 serão roteadas ao número de emergência 100 existente (embora essa seja responsabilidade do operadora, não Android).
P: E quanto a outros gatilhos, como pressionar três vezes o botão liga/desliga?
Os fabricantes de dispositivos podem implementar outros gatilhos. No entanto, enquanto o Indian DoT aprova o toque triplo no botão liga/desliga. acionador não é compatível com a implementação de referência do AOSP já que alguns apps amplamente usados (por exemplo, o app Câmera) utilizam gestos do botão liga/desliga que incluem tocar repetidamente no botão liga/desliga. Esses apps podem interfira no discador de emergência ou o usuário poderá acionar acidentalmente o o botão de pânico ao tentar acionar ações nesses aplicativos.