Mettre en place une protection d'urgence

Tous les appareils mobiles vendus en Inde à partir du 1er janvier 2017 doivent être équipés d'un bouton panique pour répondre aux exigences du ministère 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'affordance d'urgence pour activer un bouton panique sur les appareils Android.

Cette fonctionnalité est activée par défaut dans Android 8.0 et versions ultérieures, mais doit être appliquée dans les builds existants des versions antérieures. Cette fonctionnalité est destinée exclusivement aux appareils vendus sur le marché indien, mais elle 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'affordance d'urgence est implémentée dans le projet frameworks/base du projet Android Open Source (AOSP). Il est disponible dans la branche principale et est activé par défaut dans les versions Android 8.0 et ultérieures.

Cette fonctionnalité est disponible dans les branches et les commits suivants. Ces informations sont fournies pour permettre aux fabricants d'appareils de corriger facilement les modifications nécessaires dans leurs builds existants. Les fabricants d'appareils qui souhaitent implémenter la fonctionnalité de référence AOSP d'accessibilité d'urgence peuvent sélectionner les commits des branches applicables dans leurs propres builds.

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

Branch Commits
principal e0c3c66 Ajout de la fonctionnalité d'accessibilité d'urgence
42a4338 Ajout de traductions pour la chaîne d'action d'urgence
4df8d64 Correction d'un problème qui entraînait l'affichage de la fonctionnalité d'accessibilité d'urgence sur les tablettes
nougat-dev e6680d9 Ajout de la fonctionnalité d'accessibilité d'urgence
95e1865 Ajout de traductions pour la chaîne d'action d'urgence
a70bb89 Correction d'un problème qui entraînait l'affichage de la fonctionnalité d'accessibilité d'urgence sur les tablettes
marshmallow-dev cd22634 Ajout de la fonctionnalité d'accessibilité d'urgence
13f51c6 Ajout de traductions pour la chaîne d'action d'urgence
6531666 Correction d'un problème qui entraînait l'affichage de la fonctionnalité d'accessibilité d'urgence sur les tablettes
lollipop-mr1-dev 5fbc86b Ajout de la fonctionnalité d'accessibilité d'urgence
1b60879 Ajout de traductions pour la chaîne d'action d'urgence
d74366f Correction d'un problème qui entraînait l'affichage de la fonctionnalité d'accessibilité d'urgence sur les tablettes

Implémentation

La fonctionnalité d'affordance d'urgence n'apporte aucune modification aux API exposées via le kit de développement logiciel (SDK) Android. Lorsqu'elle est activée, la fonctionnalité fournit deux déclencheurs pouvant déclencher un appel d'urgence au 112, qui est le seul numéro d'urgence à utiliser en Inde et qui est obligatoire en vertu des réglementations du ministère indien des transports.

Un appel d'urgence est lancé de deux manières:

Appuyer de manière prolongée sur le bouton EMERGENCY (URGENCE)
sur l'écran de verrouillage
Appuyer sur l'option Urgence
dans le menu d'action global
bouton d'urgence

Figure 1 : Bouton EMERGENCY (URGENCE) sur l'écran de verrouillage.

option d'urgence

Figure 2. Action d'urgence dans le menu d'action global (accessible en appuyant de manière prolongée sur le bouton 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é d'affordance d'urgence. Il fournit des méthodes pour lancer l'appel d'urgence et interroger l'application à l'exécution pour savoir si la fonctionnalité doit être activée.

  • void performEmergencyCall() : lance un appel d'urgence.
  • boolean needsEmergencyAffordance() : détermine si la fonctionnalité doit être active.

Vous pouvez désactiver définitivement cette fonctionnalité au moment de la compilation en remplaçant la constante EmergencyAffordanceManager.ENABLED par false. needsEmergencyAffordance() renvoie donc toujours la valeur "false" et empêche le démarrage de EmergencyAffordanceService.

EmergencyAffordanceService

EmergencyAffordanceService est un service système qui surveille le mobile country code (MCC) de tous les réseaux mobiles détectés et le MCC des cartes SIM installées. Si l'un des numéros MCC des cartes SIM installées ou des réseaux mobiles détectés correspond à l'un des numéros MCC de l'Inde (404 ou 405), la fonctionnalité est activée. Cela signifie que la fonctionnalité peut être activée en Inde, même si aucune carte SIM n'est insérée. On suppose que le réseau mobile autorise l'enregistrement pour les appels d'urgence, même sans carte SIM installée. La fonctionnalité reste activée jusqu'à ce qu'une carte SIM autre que l'Inde soit installée et qu'aucun des réseaux détectés ne dispose d'un MCC correspondant.

Les ressources et paramètres suivants ont une incidence sur le comportement de la fonctionnalité d'affordance d'urgence. Si le type de configuration est:

  • Ressource : ressource interne définie dans frameworks/base/core/res/res/values/config.xml.
  • Paramètre : paramètre stocké dans le fournisseur de paramètres système.

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

Type de configuration Nom Description
Ressource config_emergency_call_number Numéro de téléphone composé automatiquement lorsque l'appel d'urgence est lancé.
Type: chaîne
Par défaut: 112
Ressource config_emergency_mcc_codes Tableau d'entiers indiquant les CM dans lesquels la fonctionnalité doit être active.
Type: tableau d'entiers
Valeur par défaut: {404,405}
Paramètre emergency_affordance_number Forcement du paramètre global avec le numéro à appeler avec l'affordance d'urgence. Cela n'a d'effet que sur les images de compilation débogables (c'est-à-dire que le type de compilation est userdebug ou eng). Cette fonctionnalité est destinée uniquement aux tests.
Type: chaîne
Par défaut: non défini
Paramètre force_emergency_affordance Paramètre global indiquant si la fonctionnalité d'accessibilité d'urgence doit s'afficher quel que soit l'état de l'appareil. Cette fonctionnalité est destinée uniquement aux tests.
Type: booléen (1 ou 0)
Par défaut: non défini --> 0

Activer les appels d'urgence au 112

La fonctionnalité d'accessibilité d'urgence établit la connexion à l'aide du clavier d'urgence afin que l'appel puisse être établi lorsque l'écran de verrouillage est actif. Le numéroteur d'urgence ne connecte les appels qu'à la liste des numéros fournis par la couche d'interface radio (RIL) via la propriété système:

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

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

Validation

Lors des tests sur un build débogable, le numéro appelé peut être modifié à l'aide de la commande suivante:

adb shell settings put global emergency_affordance_number NUMBER_TO_CALL

Bien que ce paramètre puisse être défini sur un build utilisateur normal, il est ignoré. Pour établir l'appel, le numéro doit figurer dans la liste des numéros d'urgence fournie par le RIL. Vous pouvez définir ce paramètre temporairement à l'aide de la commande suivante exécutée à partir d'un shell racine sur un appareil userdebug:

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

La commande suivante peut également être utilisée pour forcer l'activation de la fonctionnalité d'accessibilité 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

Nous vous recommandons d'effectuer au moins les tests suivants:

  • Lorsque cette option est activée, appuyer de manière prolongée sur le bouton URGENCE de l'écran de verrouillage (figure 1) lance un appel au numéro d'urgence spécifié.
  • Lorsque cette option est activée, l'élément Urgence du menu d'action global s'affiche. Si vous appuyez dessus, un appel est passé au numéro d'urgence spécifié.
  • La fonctionnalité n'est pas activée en l'absence de réseau mobile indien détecté avec une carte SIM non indienne installée.
  • Cette fonctionnalité est activée sur l'appareil lorsqu'une carte SIM indienne est installée, quel que soit le réseau mobile détecté.
  • La fonctionnalité est activée sur l'appareil en présence d'un réseau mobile indien, quels que soient les cartes SIM installées.

Si un appareil est compatible avec plusieurs cartes SIM, les tests doivent s'assurer que la détection du MCC de la carte SIM fonctionne correctement dans chaque emplacement de carte SIM. La fonctionnalité d'affordance d'urgence n'est pas régie par la compatibilité Android. Il n'existe donc pas de tests CTS (Compatibility Test Suite) pour cette fonctionnalité.

Questions fréquentes

Q. Le numéro d'urgence 112 n'a pas encore été mis en service en Inde. Doit-il encore être utilisé ?

Le numéro 112 est utilisé en Inde comme numéro du centre de réception des appels d'urgence (PSAP), tel que défini par les systèmes intégrés de communication et de réponse d'urgence (IECRS). Tant que le centre de gestion des appels d'urgence n'est pas mis en service, tous les appels au 112 sont acheminés vers le numéro d'urgence 100 existant (bien que cela relève de la responsabilité du transporteur, et non d'Android).

Q. Qu'en est-il des autres déclencheurs, comme le triple appui sur le bouton Marche/Arrêt ?

Les fabricants d'appareils peuvent implémenter des déclencheurs supplémentaires. Toutefois, bien que le DoT indien approuve le triple appui sur le bouton Marche/Arrêt matériel, ce déclencheur n'est pas compatible avec l'implémentation de référence AOSP, car certaines applications couramment utilisées (par exemple, l'application Appareil photo) utilisent des gestes avec le bouton Marche/Arrêt qui incluent des appuis répétés sur le bouton Marche/Arrêt. Ces applications peuvent interférer avec le numéroteur d'urgence ou l'utilisateur peut déclencher accidentellement le bouton panique lorsqu'il tente de déclencher des actions dans ces applications.