Wszystkie urządzenia mobilne sprzedawane w Indiach od 1 stycznia 2017 r. muszą być wyposażone w przycisk paniki, aby spełnić wymagania indyjskiego Departamentu Telekomunikacji (DoT). Aby spełnić te wymagania prawne, system Android zawiera referencyjną implementację funkcji Emergency Affordance umożliwiającej włączenie przycisku paniki na urządzeniach z systemem Android.
Ta funkcja jest domyślnie włączona w systemie Android 8.0 i nowszych wersjach, ale należy ją załatać w istniejących kompilacjach wcześniejszych wersji. Obecnie ta funkcja jest przeznaczona wyłącznie dla urządzeń sprzedawanych na rynku indyjskim, ale można ją włączyć na wszystkich urządzeniach sprzedawanych na całym świecie, ponieważ ta funkcja nie działa poza Indiami.
Przykłady i źródło
Funkcja Emergency Affordance jest zaimplementowana w ramach/projektie podstawowym Android Open Source Project (AOSP). Jest dostępny w głównej gałęzi i jest domyślnie włączony w Androidzie 8.0 i nowszych wersjach.
Ta funkcja jest obecnie dostępna w następujących gałęziach i zatwierdzeniach. Informacje te mają na celu umożliwienie producentom urządzeń łatwe wprowadzenie niezbędnych zmian w istniejących kompilacjach. Producenci urządzeń, którzy chcą wdrożyć funkcję afordancji referencyjnej AOSP, mogą wybierać zatwierdzenia z odpowiednich gałęzi do własnych kompilacji.
Oddział | Zatwierdza |
---|---|
główny | e0c3c66 Dodano funkcję afordancji awaryjnej 42a4338 Dodano tłumaczenia ciągu działań awaryjnych 4df8d64 Naprawiono błąd powodujący wyświetlanie afordancji awaryjnej na tabletach |
nugat-dev | e6680d9 Dodano funkcję przystępności awaryjnej 95e1865 Dodano tłumaczenia ciągu działań awaryjnych a70bb89 Naprawiono problem polegający na tym, że na tabletach wyświetlała się afordancja awaryjna |
marshmallow-dev | cd22634 Dodano funkcję awaryjną 13f51c6 Dodano tłumaczenia ciągu działań awaryjnych 6531666 Naprawiono błąd powodujący wyświetlanie afordancji awaryjnej na tabletach |
Lollipop-mr1-dev | 5fbc86b Dodano funkcję afordancji awaryjnej 1b60879 Dodano tłumaczenia ciągu działań awaryjnych d74366f Naprawiono błąd powodujący wyświetlanie afordancji awaryjnej na tabletach |
Realizacja
Funkcja Emergency Affordance nie wprowadza żadnych zmian w interfejsach API udostępnianych za pośrednictwem zestawu Android Software Development Kit (SDK). Po włączeniu i aktywowaniu funkcja zapewnia dwa wyzwalacze, które mogą zainicjować połączenie alarmowe pod numer 112, który jest jedynym numerem alarmowym używanym w Indiach i zgodnym z indyjskimi przepisami DoT.
Połączenie alarmowe jest inicjowane przez:
Długie naciśnięcie przycisku AWARYJNEGO na ekranie blokady | Dotknięcie opcji awaryjnej w globalnym menu akcji |
---|---|
Ta funkcja wprowadza następujące komponenty wewnętrzne:
- EmergencyAffordanceManager
frameworks/base/core/java/com/android/internal/policy/EmergencyAffordanceManager.java
- EmergencyAffordanceService
frameworks/base/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java
Menedżer ds. zarządzania awaryjnego
EmergencyAffordanceManager udostępnia wewnętrzny interfejs API umożliwiający korzystanie z funkcji EmergencyAffordance. Zapewnia metody inicjowania połączenia alarmowego i sprawdzania w czasie wykonywania, czy funkcja powinna być włączona.
-
void performEmergencyCall()
. Inicjuje połączenie alarmowe. -
boolean needsEmergencyAffordance()
. Określa, czy funkcja powinna być aktywna.
Funkcję można trwale wyłączyć w czasie kompilacji, zmieniając stałą EmergencyAffordanceManager.ENABLED
na false
. Spowoduje to, że needsEmergencyAffordance()
zawsze zwróci wartość false i uniemożliwi uruchomienie EmergencyAffordanceService
.
Usługa EmergencyAffordanceService
EmergencyAffordanceService
to usługa systemowa monitorująca Mobile Country Code (MCC) wszystkich wykrytych sieci komórkowych oraz MCC zainstalowanych kart SIM. Jeśli którakolwiek z zainstalowanych kart SIM lub wykrytych sieci komórkowych ma MCC odpowiadający jednemu z indyjskich MCC (404 lub 405), funkcja zostanie włączona. Oznacza to, że tę funkcję można włączyć w Indiach, nawet jeśli nie ma karty SIM. Zakłada się, że sieć komórkowa umożliwi rejestrację połączeń alarmowych nawet bez zainstalowanej karty SIM. Funkcja pozostanie włączona, dopóki nie zostanie zainstalowana karta SIM spoza Indii i żadna z wykrytych sieci nie będzie miała pasującego MCC.
Poniższe zasoby i ustawienia wpływają na działanie funkcji Afordancja awaryjna. Jeśli typ konfiguracji to:
- Zasób , jest to zasób wewnętrzny zdefiniowany w
frameworks/base/core/res/res/values/config.xml
. - Ustawienie , jest to ustawienie przechowywane u dostawcy ustawień systemowych.
Typ konfiguracji | Nazwa | Opis |
---|---|---|
Ratunek | config_emergency_call_number | Numer telefonu wybierany automatycznie po zainicjowaniu połączenia alarmowego. Typ: ciąg Wartość domyślna: 112 |
Ratunek | config_emergency_mcc_codes | Tablica liczb całkowitych zawierająca listę kont MCK, w których funkcja powinna być aktywna. Typ: tablica liczb całkowitych Wartość domyślna: {404 405} |
Ustawienie | numer_dostępności_awaryjnej | Zastąpienie ustawienia globalnego numerem, pod który należy zadzwonić z afordancją awaryjną. Będzie to miało wpływ tylko na debugowalne obrazy kompilacji (tzn. typ kompilacji to userdebug lub eng). Jest to przeznaczone wyłącznie do testowania. Typ: ciąg Wartość domyślna: nieustawiona |
Ustawienie | force_emergency_affordance | Ustawienie globalne, czy afordancja awaryjna ma być pokazywana niezależnie od stanu urządzenia. Jest to przeznaczone wyłącznie do testowania. Typ: Boolean (1 lub 0) Domyślnie: nieustawione --> 0 |
Włącz połączenia alarmowe pod numer 112
Funkcja afordancji alarmowej łączy połączenie za pomocą dialera alarmowego, dzięki czemu połączenie można nawiązać, gdy ekran blokady jest aktywny. Dialer alarmowy łączy połączenia tylko z listą numerów udostępnioną przez warstwę interfejsu radiowego (RIL) poprzez właściwość systemu:
-
ril.ecclist
, gdy nie jest zainstalowana żadna karta SIM. -
ril.ecclist SimSlotNumber
po włożeniu karty SIM, aSimSlotNumber
to identyfikator gniazda domyślnego abonenta.
Producenci urządzeń korzystający z funkcji afordancji awaryjnej muszą dopilnować, aby urządzenia w Indiach zawsze udostępniały numer 112 jako numer alarmowy w RIL.
Walidacja
Podczas testowania kompilacji z możliwością debugowania wywoływany numer można zmienić za pomocą następującego polecenia:
adb shell settings put global emergency_affordance_number NUMBER_TO_CALL
Chociaż to ustawienie można ustawić w przypadku normalnej kompilacji użytkownika, zostanie ono zignorowane. Aby faktycznie nawiązać połączenie, numer musi znajdować się na liście numerów alarmowych udostępnianej przez RIL. Można to tymczasowo ustawić za pomocą następującego polecenia wykonanego z powłoki roota na urządzeniu do debugowania użytkownika:
setprop ril.ecclist "$(getprop ril.ecclist),NUMBER_TO_CALL"
Poniższego polecenia można również użyć do wymuszenia włączenia funkcji Emergency Affordance nawet w przypadku braku wykrycia indyjskiej sieci komórkowej lub włożenia indyjskiej karty SIM.
adb shell settings put global force_emergency_affordance 1
Zaleca się przetestowanie co najmniej następujących przypadków:
- Po aktywacji, długie naciśnięcie przycisku AWARYJNE na ekranie blokady (Rysunek 1) inicjuje połączenie z określonym numerem alarmowym.
- Po aktywacji pozycja Alarm w globalnym menu akcji jest dostępna i dotknięcie jej inicjuje połączenie z określonym numerem alarmowym.
- Funkcja nie jest aktywowana w przypadku braku wykrytej indyjskiej sieci komórkowej z zainstalowaną kartą SIM spoza Indii.
- Funkcja jest aktywowana na urządzeniu po zainstalowaniu indyjskiej karty SIM, niezależnie od wykrytych sieci komórkowych.
- Funkcja jest aktywowana na urządzeniu w obecności indyjskiej sieci komórkowej, niezależnie od zainstalowanych kart SIM.
Jeśli urządzenie obsługuje wiele kart SIM, testowanie powinno upewnić się, że wykrywanie MCC karty SIM działa prawidłowo w każdym gnieździe SIM. Funkcja Emergency Affordance nie podlega zgodności z systemem Android, dlatego nie ma dla niej testów Compatibility Test Suite (CTS).
Często Zadawane Pytania
Pytanie: Numer alarmowy 112 nie został jeszcze uruchomiony w Indiach. Czy nadal należy go stosować?
112 to numer, który będzie używany w Indiach jako punkt przyjmowania zgłoszeń o wypadkach (PSAP) zgodnie z definicją w zintegrowanych systemach łączności i reagowania w sytuacjach kryzysowych (IECRS). Do czasu uruchomienia PSAP wszystkie połączenia z numerem 112 będą kierowane na istniejący numer alarmowy 100 (choć jest to obowiązek operatora, a nie Androida).
P. A co z innymi wyzwalaczami, takimi jak trzykrotne naciśnięcie przycisku zasilania?
Producenci urządzeń mogą zdecydować się na wdrożenie dodatkowych wyzwalaczy. Jednakże, chociaż indyjski Departament DoT zatwierdza trzykrotne naciśnięcie sprzętowego przycisku zasilania, ten wyzwalacz nie jest obsługiwany w referencyjnej implementacji AOSP, ponieważ niektóre powszechnie używane aplikacje (np. aplikacja Aparat) wykorzystują gesty przycisku zasilania, które obejmują wielokrotne naciśnięcia przycisku zasilania. Takie aplikacje mogą zakłócać działanie dialera alarmowego lub użytkownik może przypadkowo nacisnąć przycisk paniki, próbując wywołać działania w tych aplikacjach.