Alle in Indien ab dem 1. Januar 2017 verkauften Mobilgeräte müssen eine Notruftaste haben, um den Anforderungen des indischen Department of Telecommunications (DoT) zu entsprechen. Um diese rechtlichen Anforderungen zu erfüllen, enthält Android eine Referenzimplementierung der Funktion „Notfallfunktion“, mit der eine Paniktaste auf Android-Geräten aktiviert werden kann.
Diese Funktion ist in Android 8.0 und höher standardmäßig aktiviert, muss aber in vorhandene Builds früherer Releases eingefügt werden. Diese Funktion ist ausschließlich auf Geräte ausgerichtet, die auf dem indischen Markt verkauft werden. Sie kann jedoch auf allen Geräten weltweit enthalten sein, da sie außerhalb Indiens keine Auswirkungen hat.
Beispiele und Quelle
Die Funktion für Notfallfunktionen ist im Android Open Source Project (AOSP) im Projekt frameworks/base implementiert. Sie ist im Hauptzweig verfügbar und standardmäßig in Android 8.0 und höher aktiviert.
Diese Funktion ist in den folgenden Branches und Commits verfügbar. Diese Informationen sollen es Geräteherstellern ermöglichen, die erforderlichen Änderungen ganz einfach in ihre vorhandenen Builds einzubinden. Gerätehersteller, die die AOSP-Referenzfunktion für Notfallfunktionen implementieren möchten, können die Commits aus den entsprechenden Branches in ihre eigenen Builds übernehmen.
Tabelle 1 Beispiele für die AOSP-Referenzfunktion „Notfallfunktion“
Branch | Commits |
---|---|
Hauptnummer | e0c3c66
Die Funktion „Notfallfunktion“ wurde hinzugefügt 42a4338 Übersetzungen für den String „Notfallaktion“ wurden hinzugefügt 4df8d64 Ein Problem wurde behoben, durch das die Funktion „Notfallfunktion“ auf Tablets angezeigt wurde |
nougat-dev | e6680d9
Die Funktion „Notfallfunktion“ wurde hinzugefügt 95e1865 Übersetzungen für den String „Notfallaktion“ wurden hinzugefügt a70bb89 Ein Problem wurde behoben, durch das die Funktion „Notfallfunktion“ auf Tablets angezeigt wurde |
marshmallow-dev | cd22634
Die Funktion „Notfallfunktion“ wurde hinzugefügt 13f51c6 Übersetzungen für den String „Notfallaktion“ wurden hinzugefügt 6531666 Ein Problem wurde behoben, bei dem die Funktion „Notfallfunktion“ auf Tablets angezeigt wurde |
lollipop-mr1-dev | 5fbc86b
Die Funktion „Notfallfunktion“ wurde hinzugefügt 1b60879 Übersetzungen für den String für Notfallaktionen wurden hinzugefügt d74366f Ein Problem wurde behoben, durch das die Funktion „Notfallfunktion“ auf Tablets angezeigt wurde |
Implementierung
Die Funktion für Notfallfunktionen ändert nichts an den APIs, die über das Android Software Development Kit (SDK) freigegeben werden. Wenn die Funktion aktiviert ist, gibt es zwei Trigger, mit denen ein Notruf an die 112 gestartet werden kann. Dies ist die einzige Notrufnummer, die in Indien verwendet werden darf und die gemäß den Vorschriften des indischen Ministeriums für Telekommunikation (DoT) vorgeschrieben ist.
Ein Notruf kann auf folgende Arten gestartet werden:
Drücke lange auf die Schaltfläche NOTFALL auf dem Sperrbildschirm. |
Tippen Sie im globalen Aktionsmenü auf die Option Notfall . |
---|---|
![]() Abbildung 1: Die Schaltfläche „NOTFALL“ auf dem Sperrbildschirm. |
![]() Abbildung 2: Notfallaktion im Menü „Globale Aktionen“ (durch langes Drücken der Ein/Aus-Taste aufgerufen) |
Mit dieser Funktion werden die folgenden internen Komponenten eingeführt:
- EmergencyAffordanceManager
frameworks/base/core/java/com/android/internal/policy/EmergencyAffordanceManager.java
- EmergencyAffordanceService
frameworks/base/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java
EmergencyAffordanceManager
Der EmergencyAffordanceManager stellt eine interne API für die Verwendung der Funktion „Notfallfunktion“ bereit. Sie bietet Methoden zum Initiieren des Notrufs und zum Abfragen bei Laufzeit, ob die Funktion aktiviert sein soll.
void performEmergencyCall()
. Startet einen Notruf.boolean needsEmergencyAffordance()
: Bestimmt, ob die Funktion aktiv sein soll.
Die Funktion kann zum Zeitpunkt der Build-Phase dauerhaft deaktiviert werden, indem die Konstante EmergencyAffordanceManager.ENABLED
in false
geändert wird.
Dadurch gibt needsEmergencyAffordance()
immer „false“ zurück und verhindert, dass EmergencyAffordanceService
gestartet wird.
EmergencyAffordanceService
Der EmergencyAffordanceService
ist ein Systemdienst, der den Mobile Country Code (MCC) aller erkannten Mobilfunknetze und den MCC der installierten SIM-Karten überwacht. Wenn eine der installierten SIM-Karten oder erkannten Mobilfunknetze eine MCC hat, die mit einer der MCCs in Indien (404 oder 405) übereinstimmt, ist die Funktion aktiviert. Das bedeutet, dass die Funktion in Indien auch dann aktiviert werden kann, wenn keine SIM-Karte vorhanden ist. Es wird davon ausgegangen, dass das Mobilfunknetz die Registrierung für Notrufe auch ohne installierte SIM-Karte zulässt. Die Funktion bleibt aktiviert, bis eine SIM-Karte verwendet wird, die nicht in Indien registriert ist, und keines der erkannten Netzwerke einen übereinstimmenden MCC hat.
Die folgenden Ressourcen und Einstellungen wirken sich auf das Verhalten der Funktion „Notfall-Affordance“ aus. Wenn der Konfigurationstyp:
- Ressource: Eine interne Ressource, die in
frameworks/base/core/res/res/values/config.xml
definiert ist. - Einstellung: Eine Einstellung, die im Anbieter der Systemeinstellungen gespeichert ist.
Tabelle 2 Einstellungen, die sich auf das Verhalten der Funktion „Notfallfunktion“ auswirken
Konfigurationstyp | Name | Beschreibung |
---|---|---|
Ressource | config_emergency_call_number | Die Telefonnummer, die automatisch gewählt wird, wenn der Notruf gestartet wird. Typ: String Standard: 112 |
Ressource | config_emergency_mcc_codes | Ein Array von Ganzzahlen, das die Verwaltungskonten enthält, in denen die Funktion aktiv sein soll. Typ: Array von Ganzzahlen Standard: {404,405} |
Einstellung | emergency_affordance_number | Überschreibung der globalen Einstellung mit der Nummer, die mit der Notruffunktion angerufen werden soll. Dies wirkt sich nur auf Images mit Debug-Funktion aus, d. h. auf Builds vom Typ „userdebug“ oder „eng“. Diese Funktion ist nur für Tests vorgesehen. Typ: String Standard: unset |
Einstellung | force_emergency_affordance | Globale Einstellung, ob die Funktion „Notfallfunktion“ unabhängig vom Gerätestatus angezeigt werden soll. Diese Funktion ist nur für Tests vorgesehen. Typ: Boolescher Wert (1 oder 0) Standard: nicht festgelegt -> 0 |
Notrufe an 112 aktivieren
Die Funktion „Notfallfunktion“ stellt den Anruf über den Notruf an, damit der Anruf auch dann verbunden werden kann, wenn der Sperrbildschirm aktiv ist. Der Notruf verbindet Anrufe nur mit der Liste der Nummern, die von der Radio Interface Layer (RIL) über die Systemeigenschaft bereitgestellt werden:
ril.ecclist
, wenn keine SIM-Karte installiert ist.ril.ecclistSimSlotNumber
, wenn eine SIM-Karte eingelegt ist, undSimSlotNumber
ist die Steckplatz-ID des Standard-Abonnenten.
Gerätehersteller, die die Funktion „Emergency Affordance“ verwenden, müssen dafür sorgen, dass auf Geräten in Indien immer 112 als Notrufnummer in der RIL aktiviert ist.
Zertifizierungsstufe
Beim Testen mit einem debugfähigen Build kann die aufgerufene Nummer mit dem folgenden Befehl geändert werden:
adb shell settings put global emergency_affordance_number NUMBER_TO_CALL
Diese Einstellung kann zwar in einem normalen Nutzerbuild festgelegt werden, wird aber ignoriert. Damit der Anruf tatsächlich verbunden werden kann, muss die Nummer in der Liste der Notrufnummern der RIL enthalten sein. Dies kann vorübergehend mit dem folgenden Befehl festgelegt werden, der über eine Root-Shell auf einem Userdebug-Gerät ausgeführt wird:
setprop ril.ecclist "$(getprop ril.ecclist),NUMBER_TO_CALL"
Mit dem folgenden Befehl kann die Funktion „Notfallfunktion“ auch dann erzwungen werden, wenn kein indisches Mobilfunknetz erkannt oder keine indische SIM-Karte eingelegt wurde.
adb shell settings put global force_emergency_affordance 1
Wir empfehlen, mindestens die folgenden Fälle zu testen:
- Wenn die Funktion aktiviert ist, wird durch langes Drücken der Schaltfläche NOTFALL auf dem Sperrbildschirm (Abbildung 1) ein Anruf an die angegebene Notrufnummer gestartet.
- Wenn die Funktion aktiviert ist, wird im globalen Aktionsmenü der Eintrag Notfall angezeigt. Wenn Sie darauf tippen, wird ein Anruf an die angegebene Notrufnummer gestartet.
- Die Funktion wird nicht aktiviert, wenn kein indisches Mobilfunknetz erkannt wird und eine SIM-Karte eines anderen Landes installiert ist.
- Die Funktion wird auf dem Gerät aktiviert, wenn eine indische SIM-Karte installiert ist, unabhängig von den erkannten Mobilfunknetzen.
- Die Funktion wird auf dem Gerät aktiviert, wenn sich ein indisches Mobilfunknetz in der Nähe befindet, unabhängig von den installierten SIM-Karten.
Wenn ein Gerät mehrere SIM-Karten unterstützt, muss bei Tests sichergestellt werden, dass die SIM-MCC-Erkennung in jedem SIM-Steckplatz richtig funktioniert. Die Funktion für Notfallfunktionen unterliegt nicht der Android-Kompatibilität. Daher gibt es keine CTS-Tests (Compatibility Test Suite) dafür.
Häufig gestellte Fragen
F: Die Notrufnummer 112 ist in Indien noch nicht in Betrieb. Sollte es trotzdem verwendet werden?
112 ist die Nummer, die in Indien als Notrufzentrale gemäß den Integrated Emergency Communications and Response Systems (IECRS) verwendet wird. Bis die PSAP in Betrieb genommen wird, werden alle Anrufe an die 112 an die bestehende Notrufnummer 100 weitergeleitet. Dies ist jedoch Sache des Mobilfunkanbieters und nicht von Android.
F: Wie sieht es mit anderen Auslösern aus, z. B. dem dreimaligen Drücken der Ein/Aus-Taste?
Gerätehersteller können zusätzliche Trigger implementieren. Das indische DoT genehmigt zwar das dreimalige Tippen auf die Ein‑/Aus-Taste, dieser Trigger wird jedoch nicht in der AOSP-Referenzimplementierung unterstützt, da einige weit verbreitete Apps (z. B. die Kamera-App) Gesten für die Ein‑/Aus-Taste verwenden, die wiederholtes Tippen auf die Ein‑/Aus-Taste beinhalten. Solche Apps können den Notruf stören oder der Nutzer kann versehentlich die Paniktaste auslösen, wenn er versucht, Aktionen in diesen Apps auszulösen.