Implementazione dei finanziamenti di emergenza

Tutti i dispositivi mobili venduti in India dal 1° gennaio 2017 devono fornire un pulsante antipanico per soddisfare i requisiti del Dipartimento indiano delle telecomunicazioni (DoT). Per soddisfare questi requisiti normativi, Android include un'implementazione di riferimento della funzionalità Emergency Affordance per abilitare un pulsante antipanico sui dispositivi Android.

Questa funzionalità è abilitata per impostazione predefinita in Android 8.0 e versioni successive, ma deve essere applicata alle build esistenti delle versioni precedenti. Attualmente, questa funzionalità è destinata esclusivamente ai dispositivi venduti nel mercato indiano, ma può essere inclusa in tutti i dispositivi venduti in tutto il mondo poiché la funzionalità non ha alcun effetto al di fuori dell'India.

Esempi e fonte

La funzionalità Emergency Affordance è implementata nel framework/progetto base Android Open Source Project (AOSP). È disponibile nel ramo principale ed è abilitato per impostazione predefinita nelle versioni Android 8.0 e successive.

Questa funzionalità è attualmente disponibile nei seguenti rami e commit. Queste informazioni vengono fornite per consentire ai produttori di dispositivi di applicare facilmente le modifiche necessarie alle build esistenti. I produttori di dispositivi che desiderano implementare la funzionalità di affordance di emergenza di riferimento AOSP possono selezionare i commit dai rami applicabili nelle proprie build.

Tabella 1. Scelte per la funzionalità di affordance di emergenza di riferimento AOSP

Ramo Si impegna
principale e0c3c66 Aggiunta la funzionalità di affordance di emergenza
42a4338 Aggiunte traduzioni per la stringa di azione di emergenza
4df8d64 Risolto un problema per cui l'offerta di emergenza veniva visualizzata sui tablet
torrone-dev e6680d9 Aggiunta la funzionalità di disponibilità di emergenza
95e1865 Aggiunte traduzioni per la stringa di azione di emergenza
a70bb89 Risolto un problema per cui l'offerta di emergenza veniva visualizzata sui tablet
marshmallow-dev cd22634 Aggiunta la funzionalità di disponibilità di emergenza
13f51c6 Aggiunte traduzioni per la stringa di azione di emergenza
6531666 Risolto un problema per cui l'offerta di emergenza veniva visualizzata sui tablet
lollipop-mr1-dev 5fbc86b Aggiunta la funzionalità di affordance di emergenza
1b60879 Aggiunte traduzioni per la stringa di azione di emergenza
d74366f Risolto un problema per cui l'offerta di emergenza veniva visualizzata sui tablet

Implementazione

La funzionalità Emergency Affordance non apporta modifiche alle API esposte tramite Android Software Development Kit (SDK). Quando abilitata e attivata, la funzione fornisce due trigger che possono avviare una chiamata di emergenza al 112, che è l'unico numero di emergenza da utilizzare in India e imposto dalle normative DoT indiane.

Una chiamata di emergenza viene avviata da:

Pressione prolungata del pulsante EMERGENZA
sulla schermata di blocco
Toccando l'opzione Emergenza
nel menu Azione globale
bottone di emergenza
Figura 1. Pulsante EMERGENZA sulla schermata di blocco.
opzione di emergenza
Figura 2. Azione di emergenza nel menu Azione globale (accessibile premendo a lungo il tasto di accensione).

Questa funzionalità introduce i seguenti componenti interni:

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

Responsabile della gestione delle emergenze

EmergencyAffordanceManager fornisce un'API interna per utilizzare la funzionalità Emergency Affordance. Fornisce metodi per avviare la chiamata di emergenza e interrogare in fase di esecuzione se la funzionalità deve essere abilitata.

  • void performEmergencyCall() . Avvia una chiamata di emergenza.
  • boolean needsEmergencyAffordance() . Determina se la funzionalità deve essere attiva.

La funzionalità può essere disabilitata in modo permanente in fase di compilazione modificando la costante EmergencyAffordanceManager.ENABLED su false . Ciò farà sì che needsEmergencyAffordance() restituisca sempre false e impedisca l'avvio di EmergencyAffordanceService .

Servizio di emergenza

L' EmergencyAffordanceService è un servizio di sistema che monitora il Mobile Country Code (MCC) di tutte le reti cellulari rilevate e l'MCC delle carte SIM installate. Se una qualsiasi delle schede SIM installate o delle reti cellulari rilevate ha un MCC corrispondente a uno dei MCC indiani (404 o 405), la funzione verrà abilitata. Ciò significa che la funzione può essere abilitata in India anche se non è presente alcuna scheda SIM. Si presuppone che la rete mobile consenta la registrazione delle chiamate di emergenza anche senza scheda SIM installata. La funzione rimarrà abilitata finché non verrà installata una SIM non indiana e nessuna delle reti rilevate avrà un Centro clienti corrispondente.

Le seguenti risorse e impostazioni influiscono sul comportamento della funzionalità Emergency Affordance. Se il tipo di configurazione è:

  • Resource , è una risorsa interna definita in frameworks/base/core/res/res/values/config.xml .
  • Impostazione , è un'impostazione memorizzata nel provider delle impostazioni di sistema.

Tabella 2. Impostazioni che influenzano il comportamento della funzione di affordance di emergenza

Tipo di configurazione Nome Descrizione
Risorsa config_emergency_call_number Il numero di telefono che viene composto automaticamente quando viene avviata la chiamata di emergenza.
Tipo: corda
Predefinito: 112
Risorsa config_emergency_mcc_codes Un array di numeri interi che elenca i MCC in cui la funzionalità dovrebbe essere attiva.
Tipo: array di numeri interi
Predefinito: {404.405}
Collocamento numero_di_emergenza_affordance L'impostazione globale sovrascrive il numero da chiamare con l'affordance di emergenza. Ciò avrà effetto solo sulle immagini di build debuggabili (ad esempio, il tipo di build è userdebug o eng). Questo è inteso solo per i test.
Tipo: corda
Predefinito: non impostato
Collocamento force_emergency_affordance Impostazione globale, se l'affrancatura di emergenza deve essere mostrata indipendentemente dallo stato del dispositivo. Questo è inteso solo per i test.
Tipo: booleano (1 o 0)
Impostazione predefinita: non impostato --> 0

Abilita le chiamate di emergenza al 112

La funzione di chiamata di emergenza collega la chiamata utilizzando il combinatore di emergenza in modo che la chiamata possa essere collegata quando la schermata di blocco è attiva. Il combinatore di emergenza collega le chiamate solo all'elenco di numeri forniti dal Radio Interface Layer (RIL) attraverso la proprietà di sistema:

  • ril.ecclist quando non è installata alcuna SIM.
  • ril.ecclist SimSlotNumber quando è inserita una SIM e SimSlotNumber è l'ID dello slot dell'abbonato predefinito.

I produttori di dispositivi che utilizzano la funzione di disponibilità di emergenza devono garantire che i dispositivi in ​​India abilitino sempre il 112 come numero di emergenza nel RIL.

Validazione

Durante il test su una build debuggabile, il numero chiamato può essere modificato con il seguente comando:

adb shell settings put global emergency_affordance_number NUMBER_TO_CALL

Sebbene questa impostazione possa essere impostata su una normale build utente, verrà ignorata. Per connettere effettivamente la chiamata il numero deve essere presente nell'elenco dei numeri di emergenza fornito dalla RIL. Questo può essere impostato temporaneamente utilizzando il seguente comando eseguito da una shell root su un dispositivo userdebug:

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

Il seguente comando può essere utilizzato anche per forzare l'abilitazione della funzione Emergency Affordance anche in assenza di una rete mobile indiana rilevata o di inserimento di una scheda SIM indiana.

adb shell settings put global force_emergency_affordance 1

Come minimo, si consiglia di testare i seguenti casi:

  • Una volta attivato, premendo a lungo il pulsante EMERGENZA sulla schermata di blocco (Figura 1) si avvia una chiamata al numero di emergenza specificato.
  • Una volta attivato, l'elemento Emergenza nel menu Azione globale è presente e toccandolo si avvia una chiamata al numero di emergenza specificato.
  • La funzione non viene attivata in assenza di una rete mobile indiana rilevata con una scheda SIM non indiana installata.
  • La funzione viene attivata sul dispositivo quando viene installata una scheda SIM indiana, indipendentemente dalle reti mobili rilevate.
  • La funzionalità si attiva sul dispositivo in presenza di rete mobile indiana, indipendentemente dalle SIM installate.

Se un dispositivo supporta più schede SIM, i test dovrebbero garantire che il rilevamento del Centro clienti SIM funzioni correttamente in ciascuno slot SIM. La funzionalità Emergency Affordance non è regolata dalla compatibilità Android, quindi non sono disponibili test CTS (Compatibility Test Suite).

Domande frequenti

D. In India il numero di emergenza 112 non è stato ancora attivato. Dovrebbe essere ancora utilizzato?

112 è il numero che verrà utilizzato in India come punto di risposta alla sicurezza pubblica (PSAP) come definito dai sistemi integrati di comunicazione e risposta alle emergenze (IECRS). Fino alla messa in servizio del PSAP, tutte le chiamate al 112 verranno instradate al numero di emergenza 100 esistente (anche se questa è responsabilità dell'operatore, non di Android).

D. Che dire di altri trigger, come la tripla pressione del pulsante di accensione?

I produttori di dispositivi possono scegliere di implementare trigger aggiuntivi. Tuttavia, sebbene il DoT indiano approvi il triplo tocco del pulsante di accensione dell'hardware, questo trigger non è supportato nell'implementazione di riferimento AOSP poiché alcune applicazioni ampiamente utilizzate (ad esempio l'app Fotocamera) utilizzano gesti del pulsante di accensione che includono il tocco ripetuto del pulsante di accensione. Tali applicazioni potrebbero interferire con la chiamata di emergenza o l'utente potrebbe attivare accidentalmente il pulsante antipanico mentre tenta di attivare azioni in queste applicazioni.