Mettre en œuvre l’aide d’urgence

Tous les appareils mobiles vendus en Inde à partir du 1er janvier 2017 doivent être équipés d'un bouton d'urgence pour répondre aux exigences du Département indien des télécommunications (DoT). Pour répondre à ces exigences réglementaires, Android inclut une implémentation de référence de la fonctionnalité d'aide d'urgence pour activer un bouton de panique sur les appareils Android.

Cette fonctionnalité est activée par défaut dans Android 8.0 et les versions supérieures, mais doit être corrigée dans les versions existantes des versions antérieures. Actuellement, cette fonctionnalité est exclusivement destinée aux appareils vendus sur le marché indien, mais peut être incluse sur tous les appareils vendus dans le monde car elle n'a aucun effet en dehors de l'Inde.

Exemples et source

La fonctionnalité d'aide d'urgence est implémentée dans les cadres/projet de base du projet Android Open Source (AOSP). Il est disponible dans la branche principale et est activé par défaut dans Android 8.0 et les versions supérieures.

Cette fonctionnalité est actuellement disponible dans les branches et commits suivants. Ces informations sont fournies pour permettre aux fabricants d'appareils d'apporter facilement les modifications nécessaires à leurs versions existantes. Les fabricants d’appareils souhaitant implémenter la fonctionnalité d’allocation d’urgence de référence AOSP peuvent sélectionner les validations des branches applicables dans leurs propres versions.

Tableau 1. Sélections pour la fonctionnalité d'aide d'urgence de référence de l'AOSP

Bifurquer S'engage
principal e0c3c66 Ajout de la fonctionnalité d'allocation d'urgence
42a4338 Ajout de traductions pour la chaîne d'action d'urgence
4df8d64 Correction d'un problème où les moyens d'urgence s'affichaient sur les tablettes.
nougat-dev e6680d9 Ajout d'une fonctionnalité d'allocation d'urgence
95e1865 Ajout de traductions pour la chaîne d'action d'urgence
a70bb89 Correction d'un problème où les moyens d'urgence s'affichaient sur les tablettes
guimauve-dev cd22634 Ajout de la fonctionnalité d'allocation d'urgence
13f51c6 Ajout de traductions pour la chaîne d'action d'urgence
6531666 Correction d'un problème où les moyens d'urgence s'affichaient sur les tablettes.
sucette-mr1-dev 5fbc86b Ajout de la fonctionnalité d'allocation d'urgence
1b60879 Ajout de traductions pour la chaîne d'action d'urgence
d74366f Correction d'un problème où les moyens d'urgence s'affichaient sur les tablettes.

Mise en œuvre

La fonctionnalité d'aide d'urgence n'apporte aucune modification aux API exposées via le kit de développement logiciel (SDK) Android. Lorsqu'elle est activée et activée, la fonctionnalité fournit deux déclencheurs qui peuvent lancer un appel d'urgence au 112, qui est le seul numéro d'urgence à utiliser en Inde et mandaté par la réglementation indienne du DoT.

Un appel d'urgence est lancé soit par :

Appui long sur le bouton d'URGENCE
sur l'écran de verrouillage
En appuyant sur l'option d'urgence
dans le menu Action globale
bouton d'urgence
Figure 1. Bouton d'URGENCE sur l'écran de verrouillage.
possibilité d'urgence
Figure 2. Action d'urgence dans le menu d'action globale (accessible en appuyant longuement sur la touche marche/arrêt).

Cette fonctionnalité introduit les composants internes suivants :

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

EmergencyAffordanceManager

EmergencyAffordanceManager fournit une API interne pour utiliser la fonctionnalité Emergency Affordance. Il fournit des méthodes pour lancer l'appel d'urgence et demander au moment de l'exécution si la fonctionnalité doit être activée.

  • void performEmergencyCall() . Lance un appel d’urgence.
  • boolean needsEmergencyAffordance() . Détermine si la fonctionnalité doit être active.

La fonctionnalité peut être définitivement désactivée au moment de la construction en modifiant la constante EmergencyAffordanceManager.ENABLED sur false . Cela fera que needsEmergencyAffordance() retournera toujours false et empêchera EmergencyAffordanceService de démarrer.

UrgenceAffordanceService

EmergencyAffordanceService est un service système qui surveille le Mobile Country Code (MCC) de tous les réseaux cellulaires détectés et le MCC des cartes SIM installées. Si l'une des cartes SIM installées ou des réseaux cellulaires détectés possède un MCC correspondant à l'un des MCC indiens (404 ou 405), la fonctionnalité sera activée. Cela signifie que la fonctionnalité peut être activée en Inde même si aucune carte SIM n'est présente. On suppose que le réseau mobile permettra l'enregistrement des appels d'urgence même sans carte SIM installée. La fonctionnalité restera activée jusqu'à ce qu'une carte SIM non indienne soit installée et qu'aucun des réseaux détectés n'ait de MCC correspondant.

Les ressources et paramètres suivants affectent le comportement de la fonctionnalité d'aide d'urgence. Si le type de configuration est :

  • Resource , c'est une ressource interne définie dans frameworks/base/core/res/res/values/config.xml .
  • Setting , il s’agit d’un paramètre stocké dans le fournisseur de paramètres système.

Tableau 2. Paramètres affectant le comportement de la fonctionnalité d'allocation d'urgence

Type de configuration Nom Description
Ressource config_emergency_call_number Le numéro de téléphone qui est automatiquement composé lorsque l'appel d'urgence est lancé.
Type : chaîne
Par défaut : 112
Ressource config_emergency_mcc_codes Tableau d'entiers répertoriant les MCC dans lesquels la fonctionnalité doit être active.
Type : Tableau d'entiers
Par défaut : {404 405}
Paramètre numéro_d'affordance_d'urgence Remplacement des paramètres globaux par le numéro à appeler avec les moyens d'urgence. Cela n'aura un effet que sur les images de build déboguables (c'est-à-dire que le type de build est userdebug ou eng). Ceci est uniquement destiné aux tests.
Type : chaîne
Par défaut : non défini
Paramètre force_emergency_affordance Paramètre global, indiquant si les moyens d'urgence doivent être affichés quel que soit l'état de l'appareil. Ceci est uniquement destiné aux tests.
Type : Booléen (1 ou 0)
Par défaut : non défini --> 0

Activer les appels d'urgence au 112

La fonction d'assistance d'urgence connecte l'appel à l'aide du numéroteur d'urgence afin que l'appel puisse être connecté lorsque l'écran de verrouillage est actif. Le composeur d'urgence connecte les appels uniquement à la liste de numéros fournie par la couche d'interface radio (RIL) via la propriété système :

  • ril.ecclist lorsqu'aucune carte SIM n'est installée.
  • ril.ecclist SimSlotNumber lorsqu'une carte SIM est insérée et SimSlotNumber est l'ID d'emplacement de l'abonné par défaut.

Les fabricants d'appareils utilisant la fonction d'urgence doivent s'assurer que les appareils en Inde activent toujours le 112 comme numéro d'urgence dans le RIL.

Validation

Lors du test sur une version déboguable, le numéro appelé peut être modifié avec la commande suivante :

adb shell settings put global emergency_affordance_number NUMBER_TO_CALL

Bien que ce paramètre puisse être défini sur une version utilisateur normale, il sera ignoré. Pour connecter réellement l'appel, le numéro doit figurer dans la liste des numéros d'urgence fournie par le RIL. Cela peut être temporairement défini à l'aide de la commande suivante exécutée à partir d'un shell racine sur un périphérique userdebug :

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

La commande suivante peut également être utilisée pour forcer l'activation de la fonction d'aide d'urgence même en l'absence de détection d'un réseau mobile indien ou d'insertion d'une carte SIM indienne.

adb shell settings put global force_emergency_affordance 1

Au minimum, il est recommandé de tester les cas suivants :

  • Une fois activé, un appui long sur le bouton d'URGENCE sur l'écran de verrouillage (Figure 1) lance un appel vers le numéro d'urgence spécifié.
  • Une fois activé, l'élément d'urgence du menu d'action global est présent et en appuyant dessus, vous lancez un appel vers le numéro d'urgence spécifié.
  • La fonctionnalité n'est pas activée en l'absence d'un réseau mobile indien détecté avec une carte SIM non indienne installée.
  • La fonctionnalité est activée sur l'appareil lorsqu'une carte SIM indienne est installée, quels que soient les réseaux mobiles détectés.
  • La fonctionnalité est activée sur l'appareil en présence d'un réseau mobile indien, quelles que soient les cartes SIM installées.

Si un appareil prend en charge plusieurs cartes SIM, les tests doivent garantir que la détection SIM MCC fonctionne correctement dans chaque emplacement SIM. La fonctionnalité d'aide d'urgence n'est pas régie par la compatibilité Android, il n'existe donc aucun test CTS (Compatibility Test Suite) pour elle.

Questions fréquemment posées

Q. Le numéro d'urgence 112 n'a pas encore été mis en service en Inde. Faut-il encore l'utiliser ?

Le 112 est le numéro qui sera utilisé en Inde comme point de réponse de sécurité publique (PSAP), tel que défini par les systèmes intégrés de communication et de réponse d'urgence (IECRS). Jusqu'à ce que le PSAP soit mis en service, tous les appels vers le 112 seront acheminés vers le numéro d'urgence 100 existant (bien que cela relève de la responsabilité de l'opérateur, et non d'Android).

Q. Qu'en est-il des autres déclencheurs tels que la triple pression sur le bouton d'alimentation ?

Les fabricants d’appareils peuvent choisir de mettre en œuvre des déclencheurs supplémentaires. Cependant, bien que le DoT indien approuve le triple appui sur le bouton d'alimentation matériel, ce déclencheur n'est pas pris en charge dans l'implémentation de référence AOSP car certaines applications largement utilisées (par exemple l'application Appareil photo) utilisent des gestes du bouton d'alimentation qui incluent des appuis répétés sur le bouton d'alimentation. De telles applications peuvent interférer avec le numéroteur d'urgence ou l'utilisateur peut accidentellement déclencher le bouton de panique en essayant de déclencher des actions dans ces applications.