Implementare la convenienza delle emergenze

A partire dal 1° gennaio 2017, tutti i dispositivi mobili venduti in India devono fornire un pulsante di emergenza per soddisfare i requisiti del Dipartimento delle telecomunicazioni indiano (DoT). Per soddisfare questi requisiti normativi, Android include un riferimento della funzionalità di accessibilità per le emergenze per attivare un pulsante di emergenza Dispositivi Android

Questa funzionalità è attiva per impostazione predefinita in Android 8.0 e versioni successive, ma deve essere applicata una patch a build esistenti di release precedenti. Questo è destinata esclusivamente ai dispositivi venduti sul mercato indiano, ma può essere inclusa in tutti i dispositivi venduti in tutto il mondo, in quanto la funzionalità non ha effetto fuori dall'India.

Esempi e fonte

La funzionalità Emergency Affordance è implementata nell'open source di Android Progetto (AOSP) framework/base progetto. È disponibile nel ramo principale ed è abilitata per impostazione predefinita in Android 8.0 e versioni successive.

Questa funzionalità è attualmente disponibile nelle rami e nei commit seguenti. Queste informazioni vengono fornite per consentire ai produttori di patch facilmente le modifiche necessarie nelle build esistenti. I produttori di dispositivi che vogliono implementare la funzionalità di consulenza di emergenza di AOSP, dei rami applicabili nelle proprie build.

Tabella 1. Cherry-pick per l’affinamento di emergenza di riferimento AOSP funzionalità

Branch Commit
principale e0c3c66 Aggiunta la funzionalità di invito di emergenza
42a4338 Sono state aggiunte traduzioni per la stringa di azioni di emergenza
4df8d64 Risolto un problema per cui l'invito di emergenza veniva visualizzata sui tablet
sviluppo-torrone e6680d9 Aggiunta la funzionalità di invito di emergenza
95e1865 Sono state aggiunte traduzioni per la stringa di azioni di emergenza
a70bb89 Risolto un problema per cui l'invito di emergenza veniva visualizzata sui tablet
marshmallow-dev cd22634 Aggiunta la funzionalità di invito di emergenza
13f51c6 Sono state aggiunte traduzioni per la stringa di azioni di emergenza
6531666 Risolto un problema per cui l'invito di emergenza veniva visualizzata sui tablet
lecca-lecca-mr1-dev 5fbc86 Aggiunta la funzionalità di invito di emergenza
1b60879 Sono state aggiunte traduzioni per la stringa di azioni di emergenza
d74366f Risolto un problema per cui l'invito di emergenza veniva visualizzata sui tablet

Implementazione

La funzionalità di convenienza di emergenza non apporta modifiche alle API esposte tramite l'SDK (Software Development Kit) Android. Quando questa opzione è abilitata e attivata, mette a disposizione due attivatori che possono avviare una chiamata di emergenza al 112, è il numero di emergenza unico che deve essere usato in India e richiesto dall'autorità normative DoT.

Una chiamata di emergenza viene avviata da:

Premere a lungo il pulsante EMERGENCY
sulla schermata di blocco
Toccando l'opzione Emergenza
nella Menu Azioni globale
un'emergenza
pulsante
Figura 1. Pulsante EMERGENCY attivo schermata di blocco.
un'emergenza
opzione
Figura 2. Azione di emergenza attivata Menu Azioni globale (accessibile premendo a lungo il tasto di accensione).

Questa funzionalità introduce i seguenti componenti interni:

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

GestoreAffordancediemergenza

EmergencyAffordanceManager fornisce un'API interna per utilizzare il servizio Funzionalità di convenienza. Fornisce metodi per avviare la chiamata di emergenza e se la funzionalità deve essere abilitata in fase di runtime.

  • void performEmergencyCall(). Avvia una chiamata di emergenza.
  • boolean needsEmergencyAffordance(). Determina se la caratteristica devono essere attivi.

La funzionalità può essere disabilitata in modo permanente al momento della creazione modificando la Costante di EmergencyAffordanceManager.ENABLED a false. In questo modo needsEmergencyAffordance() restituirà sempre false ed evitare l'avvio di EmergencyAffordanceService.

Servizioa basso costodiemergenza

EmergencyAffordanceService è un servizio di sistema che monitora Il Mobile Country Code (Centro clienti) di tutte le reti mobili rilevate e del Centro clienti delle schede SIM installate. Se sono state rilevate delle schede SIM installate o che hanno un Centro clienti corrispondente a uno dei Centri clienti indiani (404 o 405), quindi verrà attivata. Ciò significa che la funzionalità può essere attivata in India anche se nessuna scheda SIM presente. Si presume che la rete mobile consenta registrazione per le chiamate di emergenza anche senza una scheda SIM installata. La funzionalità rimarrà attiva finché non verrà installata una SIM non indiana e nessuno dei a un Centro clienti corrispondente.

Le seguenti risorse e impostazioni influiscono sul comportamento dell'emergenza Funzionalità di convenienza. Se il tipo di configurazione è:

  • Risorsa, si tratta di una risorsa interna definita in frameworks/base/core/res/res/values/config.xml.
  • Impostazione, un'impostazione memorizzata nelle impostazioni di sistema o il provider di servizi di terze parti.

Tabella 2. Impostazioni che influiscono sul comportamento dell'invito di emergenza funzionalità

Tipo di configurazione Nome Descrizione
Risorsa numero_chiamata_di_emergenza_configurazione Il numero di telefono composto automaticamente quando viene effettuata la chiamata di emergenza in fase di avvio.
Tipo: stringa
Valore predefinito: 112
Risorsa codici_mcc_config_emergency Un array di numeri interi che elenca i Centri clienti in cui deve essere attiva la funzionalità.
Tipo: array di numeri interi
Valore predefinito: {404,405}
Impostazione numero_affordance_emergenza Override delle impostazioni globali con il numero da chiamare con l'emergenza invito. Ha effetto solo sulle immagini build di cui è possibile eseguire il debug (ovvero è userdebug o eng). Questa funzionalità è pensata solo per i test.
Tipo: stringa
Impostazione predefinita: non impostata
Impostazione forza_emergency_affordance Impostazione globale, se l'invito di emergenza deve essere mostrato indipendentemente dello stato del dispositivo. Questa funzionalità è pensata solo per i test.
Tipo: booleano (1 o 0)
Valore predefinito: non impostato --> 0

Attiva le chiamate di emergenza al 112

La funzionalità di invito di emergenza connette la chiamata utilizzando il servizio di emergenza tastiera, per connettere la chiamata quando è attiva la schermata di blocco. La chiamata di emergenza connette le chiamate soltanto all'elenco di numeri fornito Radio Interface Layer (RIL) tramite la proprietà di sistema:

  • ril.ecclist se non è installata alcuna SIM.
  • ril.ecclistSimSlotNumber quando viene inserita una SIM e SimSlotNumber è l'ID slot del campo sottoscrittore.

I produttori di dispositivi che utilizzano la funzione di invito di emergenza devono garantire che in India sia sempre abilitato il 112 come numero di emergenza nel RIL.

Convalida

Durante il test su una build di cui è possibile eseguire il debug, il numero chiamato può essere modificato con il seguente comando:

adb shell settings put global emergency_affordance_number NUMBER_TO_CALL

Questa impostazione può essere configurata su una normale build dell'utente, ma verrà ignorata. Per connettere la chiamata, il numero deve essere nell'elenco dei contatti di emergenza numeri forniti dal RIL. Questa opzione può essere impostata temporaneamente utilizzando: eseguito da una shell root su un dispositivo userdebug:

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

Il seguente comando può essere usato anche per forzare l'infrastruttura attivare anche in assenza di una rete mobile indiana rilevata o una scheda SIM indiana che viene inserita.

adb shell settings put global force_emergency_affordance 1

Ti consigliamo di verificare almeno i seguenti casi:

  • Una volta attivata, premi a lungo il pulsante EMERGENCY sul la schermata di blocco (Figura 1) avvia una chiamata al numero di emergenza specificato.
  • Dopo l'attivazione, la voce Emergenza sull'azione globale Il menu è presente e il tocco avvia una chiamata all'emergenza specificata numero.
  • La funzionalità non viene attivata in assenza di un ha rilevato una rete mobile indiana con una scheda SIM non indiana installata.
  • La funzionalità viene attivata sul dispositivo quando una SIM indiana sia installata indipendentemente dalle reti mobili rilevate.
  • La funzionalità viene attivata sul dispositivo in presenza di Una rete mobile indiana, indipendentemente dalle schede SIM installate.

Se un dispositivo supporta più schede SIM, il test dovrebbe garantire che il rilevamento Centro clienti SIM funzioni correttamente in ogni slot della SIM. L'emergenza La funzionalità di convenienza non è regolata dalla compatibilità con Android, quindi non ci sono di Compatibility Test Suite (CTS).

Domande frequenti

D. Il numero di emergenza 112 non è stato ancora incaricato in in India. Deve essere ancora utilizzato?

112 è il numero che verrà utilizzato in India come risposta di sicurezza pubblica punto di accesso (PSAP, Integrated Emergency Communications and Response) sistemi (IECRS). Fino a quando la PSAP non viene messa in servizio, tutte le chiamate al 112 verranno instradate al numero di emergenza 100 esistente (sebbene sia responsabilità del operatore, non Android).

D. E per quanto riguarda gli altri fattori scatenanti, come la pressione tripla il tasto di accensione?

I produttori di dispositivi possono scegliere di implementare altri attivatori. Tuttavia, mentre il Dipartimento della Difesa indiano approva il triplo tocco del tasto di accensione, il trigger non è supportato nell'implementazione del riferimento AOSP Alcune app molto utilizzate, ad esempio l'app Fotocamera, usano i gesti del tasto di accensione che includono tocchi ripetuti del tasto di accensione. Queste app potrebbero interferire con la tastiera di emergenza o l'utente potrebbe attivare pulsante di emergenza mentre provi ad attivare azioni in queste app.