Wdrażanie ulg w sytuacjach awaryjnych

Wszystkie urządzenia mobilne sprzedawane w Indiach od 1 stycznia 2017 r. muszą mieć przycisk alarmu antywłamaniowego, aby spełnić wymagania indyjskiego Departamentu Telekomunikacji (DoT). Aby spełnić te wymagania prawne, Android dodaje odniesienie wdrożenia funkcji Budżet na alarmy, która włącza przycisk alarmu antywłamaniowego. Urządzenia z Androidem.

Ta funkcja jest domyślnie włączona w Androidzie 8.0 i nowszych wersjach, ale należy zainstalować poprawkę do istniejących kompilacji wcześniejszych wersji. Ten jest kierowana wyłącznie na urządzenia sprzedawane na rynku indyjskim, ale może być na wszystkich urządzeniach sprzedawanych na całym świecie, ponieważ funkcja ta nie działa. poza Indiami.

Przykłady i źródło

Funkcja ułatwień dostępu w sytuacjach awaryjnych jest wdrożona w Androidzie typu open source Projekt (AOSP) platformy/elementy podstawowe w projektach AI. Jest dostępna w głównej gałęzi i jest domyślnie włączona w Android 8.0 i nowsze wersje.

Ta funkcja jest obecnie dostępna w następujących gałęziach i zatwierdzeniach. Dzięki tym informacjom producenci mogą łatwo instalować niezbędnych zmian w obecnych konstrukcjach. Producenci urządzeń dla wybranych Jeśli wdrożysz AOSP AOSP, algorytm awaryjny może wybrać zatwierdzeń z odpowiednich gałęzi we własnych kompilacjach.

Tabela 1. Wyszukanie wiśni dla AOSP w przypadku afordancji awaryjnej cecha

Oddział Zatwierdzenia
główny E0c3C66 Dodano funkcję Afordancji awaryjnej
42a4338, Dodano tłumaczenia ciągu tekstowego dotyczącego działań alarmowych
4DF8D64 Naprawiono błąd wyświetlania aktywów awaryjnych na tabletach.
Nougat-dev E6680D9 Dodano funkcję Afordancji awaryjnej
95e1865 Dodano tłumaczenia ciągu tekstowego dotyczącego działań alarmowych
A70bb89 Naprawiono błąd wyświetlania aktywów awaryjnych na tabletach.
marshmallow-dev cd22634 Dodano funkcję Afordancji awaryjnej
13f51c6 Dodano tłumaczenia ciągu tekstowego dotyczącego działań alarmowych
6531666 Naprawiono błąd wyświetlania aktywów awaryjnych na tabletach.
lollipop-mr1-dev, 5fbc86b Dodano funkcję Afordancji awaryjnej
1B60879 Dodano tłumaczenia ciągu tekstowego dotyczącego działań alarmowych
D74366F Naprawiono błąd wyświetlania aktywów awaryjnych na tabletach.

Implementacja

Funkcja Ubezpieczenia Awaryjnego nie wprowadza żadnych zmian w interfejsach API udostępnianych przez w pakiecie Android SDK. Po włączeniu i aktywowaniu funkcja umożliwia nawiązanie połączenia alarmowego z numerem 112, to jedyny numer alarmowy w Indiach. przepisami Departamentu Telekomunikacji.

Połączenie alarmowe zostanie zainicjowane przez:

Przytrzymaj przycisk EMERGENCY
na ekran blokady
Kliknij opcję Alarmowe
w Globalne menu czynności
sytuacja alarmowa
przycisk
Rysunek 1. Przycisk EMERGENCY włączony ekranu blokady.
sytuacja alarmowa
opcja
Rysunek 2. Działanie alarmowe włączone Globalne menu czynności (wyświetlane po przytrzymaniu przycisku zasilania).

Ta funkcja wprowadza te komponenty wewnętrzne:

  • Menedżer ds. zagrożeń
    frameworks/base/core/java/com/android/internal/policy/EmergencyAffordanceManager.java
    
  • UsługaAffordance
    frameworks/base/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java
    

Menedżer ds. zagrożeń

EmergencyAffordanceManager udostępnia wewnętrzny interfejs API do użycia w sytuacjach alarmowych Funkcja przystępnych cen. Udostępnia metody nawiązywania połączenia alarmowego i wysyła zapytania w trakcie działania, aby sprawdzić, czy ta funkcja powinna być włączona.

  • void performEmergencyCall() Nawiązuje połączenie alarmowe.
  • boolean needsEmergencyAffordance() Określa, czy cecha powinna być aktywna.

W trakcie kompilacji możesz trwale wyłączyć tę funkcję, zmieniając EmergencyAffordanceManager.ENABLED (stała) na false. Dzięki temu needsEmergencyAffordance() będzie zawsze zwracać wartość fałsz i uniemożliwić uruchomienie polecenia EmergencyAffordanceService.

UsługaAffordance

EmergencyAffordanceService to usługa systemowa, która monitoruje Kod kraju sieci komórkowej (MCK) wszystkich wykrytych sieci komórkowych oraz MCK włożonych kart SIM. Jeśli któraś z włożonych kart SIM lub została wykryta sieci komórkowych mają MCK pasujące do jednego z indyjskich kodów MCK (404 lub 405), a potem funkcja ta zostanie włączona. Oznacza to, że w Indiach tę funkcję można włączyć, nawet jeśli brak karty SIM. Zakładamy, że sieć komórkowa na potrzeby połączeń alarmowych, nawet jeśli nie masz włożonej karty SIM. Funkcja pozostanie włączona do czasu zainstalowania karty SIM innej niż indyjskiej i żadnego z wykrytych sieci mają pasujące konto MCK.

Te zasoby i ustawienia wpływają na działanie sytuacji alarmowej Funkcja przystępnych cen. 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 zapisane w ustawieniach systemu. dostawcy usług.

Tabela 2. Ustawienia wpływające na działanie aborcjonowania awaryjnego cecha

Typ konfiguracji Nazwa Opis
Zasób numer_rozmowy_konfiguracji Numer telefonu, który jest wybierany automatycznie podczas połączenia alarmowego zainicjowano.
Rodzaj: ciąg znaków
Domyślnie: 112.
Zasób config_emergency_mcc_codes Tablica liczb całkowitych z listą MCK, na których funkcja powinna być aktywna.
Rodzaj: tablica liczb całkowitych
Domyślnie: {404 405}
Ustawienie numer_alarmowy Zastąpienie ustawienia globalnego numerem, pod który można zadzwonić w sytuacji alarmowej afordancji. Dotyczy to tylko obrazów kompilacji możliwych do debugowania (czyli kompilacji (typ użytkownika to userdebug lub eng). Służy ona tylko do testowania.
Rodzaj: ciąg znaków
Wartość domyślna: nieskonfigurowane
Ustawienie siła_awarii_afordancji Ustawienie globalne, które określa, czy afordancja awaryjne ma być wyświetlana niezależnie stanu urządzenia. Służy ona tylko do testowania.
Rodzaj: wartość logiczna (1 lub 0)
Wartość domyślna: nieskonfigurowane --> 0

Włącz połączenia alarmowe z numerem 112

Funkcja akredytacji umożliwia nawiązanie połączenia alarmowego Telefonu, aby można było nawiązać połączenie, gdy aktywny jest ekran blokady. Aplikacja telefonu alarmowego łączy połączenia wyłącznie z numerami podanymi przez Warstwa interfejsu radiowego (RIL) za pomocą właściwości systemowej:

  • ril.ecclist, gdy nie ma zainstalowanej karty SIM.
  • ril.ecclistSimSlotNumber po włożeniu karty SIM a SimSlotNumber to identyfikator domyślnego przedziału subskrybent.

Producenci urządzeń, którzy korzystają z funkcji rezerwy rezerwowej, muszą dopilnować, aby: na urządzeniach w Indiach zawsze włącza się 112 jako numer alarmowy w RIL.

Weryfikacja

Podczas testowania kompilacji możliwej do debugowania można zmienić wywołany numer za pomocą tego polecenia:

adb shell settings put global emergency_affordance_number NUMBER_TO_CALL

Chociaż to ustawienie można ustawić w ramach zwykłej kompilacji użytkownika, będzie ono ignorowane. Aby można było nawiązać połączenie, numer telefonu musi być na liście służb ratunkowych podawana przez RIL. Można ją tymczasowo ustawić za pomocą tych ustawień: polecenie wykonywane w powłoce głównej na urządzeniu debugującym użytkownika:

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

Tego polecenia można też użyć, aby wymusić dostęp do danych o zagrożeniu ma być włączana nawet w przypadku, gdy w Indiach nie ma działającej sieci komórkowej lub włożyć indyjską kartę SIM.

adb shell settings put global force_emergency_affordance 1

Zalecamy przetestowanie przynajmniej tych przypadków:

  • Po aktywowaniu przytrzymaj przycisk EMERGENCY na ekranie blokady (ilustracja 1) zostanie nawiązane połączenie z określonym numerem alarmowym.
  • Po aktywowaniu element Alarmowe w działaniu globalnym Wyświetli się menu i dotknięcie go powoduje nawiązanie połączenia ze wskazanym numerem alarmowym. numer.
  • Funkcja nie jest aktywowana, jeśli nie ma wykryto sieć Indian Mobile z zainstalowaną kartą SIM spoza Indii.
  • Funkcja jest aktywowana na urządzeniu, gdy indyjska karta SIM jest zainstalowana niezależnie od wykrytych sieci komórkowych.
  • Funkcja jest aktywowana na urządzeniu w przypadku: do indyjskiej sieci komórkowej, niezależnie od włożonych kart SIM.

Jeśli urządzenie obsługuje kilka kart SIM, testowanie powinno upewnić się, czy wykrywanie MCK na karcie SIM działa prawidłowo w przypadku każdego gniazda karty SIM. Sytuacja alarmowa Funkcja przystępności nie zależy od zgodności z Androidem, dlatego nie ma testów zgodności z pakietem CTS (Compatibility Test Suite).

Najczęstsze pytania

Pytanie: Numer alarmowy 112 nie został jeszcze uruchomiony w Indiach. Czy nadal warto jej używać?

112 to numer, który będzie używany w Indiach jako numer do zgłoszeń bezpieczeństwa publicznego. punkt (PSAP) określony przez Zintegrowaną Komunikację alarmową i Reagowanie na sytuację kryzysową. Systemy (IECRS). Do momentu zlecenia PSAP wszystkie wywołania numeru 112 będą kierowane pod numer 112 do istniejącego numeru alarmowego 100 (mimo że odpowiedzialność za tę odpowiedzialność należy operatora, a nie Androida).

Pytanie: Co z innymi czynnikami wywołującymi takie działanie, jak naciśnięcie trzykrotnie przycisk zasilania?

Producenci urządzeń mogą wdrożyć dodatkowe reguły. Pamiętaj jednak: Indyjska Departament Telekomunikacji opracowała zgodę na dwukrotne dotknięcie przycisku zasilania sprzętu, reguła nie jest obsługiwana w implementacji referencyjnej AOSP bo niektóre popularne aplikacje (np. Aparat) używają gestów przycisku zasilania. które obejmują wielokrotne naciśnięcie przycisku zasilania. Takie aplikacje mogą zakłóca działanie telefonu alarmowego, w przeciwnym razie użytkownik może przypadkowo uruchomić przycisk alarmu antywłamaniowego podczas próby aktywowania działań w tych aplikacjach.