Modalità demo retail

Android 7.1.1 ha introdotto il supporto a livello di sistema per la modalità demo retail, in modo che i clienti possano esaminare i dispositivi in azione nei negozi di vendita al dettaglio. I dispositivi vengono configurati per la demo in negozio utilizzando un'app di proprietà del dispositivo per garantire che l'utilizzo del dispositivo sia limitato solo a determinate app in modalità demo. Gli utenti finali non devono essere in grado di aggiungere un account personale su un dispositivo in modalità demo retail. Android 8.1 rivede questo supporto per creare utenti della demo tramite l'API createAndmanageUser di DevicePolicyManager. Ciò consente una maggiore personalizzazione OEM rispetto alla modalità di vendita standard in termini di gestione degli utenti e dei criteri del dispositivo sul dispositivo demo.

Sebbene le API DevicePolicyManager possano essere utilizzate nelle versioni precedenti ad Android 8.1, non è possibile creare utenti di tipo demo (DevicePolicyManager.MAKE_USER_DEMO) con l'API createAndManageUser nelle versioni 8.0 e precedenti.

Implementazione in Android 8.1 e versioni successive

Questa sezione mette in evidenza i miglioramenti della piattaforma e descrive l'app demo per la vendita al dettaglio in Android 8.1 e versioni successive.

Modifiche alla piattaforma

Imposta DEVICE_DEMO_MODE

I dispositivi che implementano una modalità demo per la vendita al dettaglio basata sul proprietario del dispositivo devono impostare Settings.Global.DEVICE_DEMO_MODE su 1 prima del provisioning per indicare che il provisioning del dispositivo è in corso per la modalità demo per la vendita al dettaglio. SystemServer utilizza questo flag per gestire aspetti della modalità di vendita al dettaglio, come il profilo di alimentazione e SystemUI.

Attivare RetailDemoModeService

Nei dispositivi che implementano una modalità demo retail, la configurazione guidata imposta un'impostazione globale Global.DEVICE_DEMO_MODE su true per indicare che il dispositivo è entrato in modalità retail. Quando viene visualizzata questa impostazione, RetailDemoModeService crea un utente demo e passa a questo utente quando viene avviato l'utente 0, attiva il programma di avvio personalizzato specificato in una risorsa in overlay e disattiva SUW. Anche System Server e SystemUI utilizzano questo flag per gestire aspetti della modalità di vendita al dettaglio.

Impostare un Avvio app o un video player personalizzato

I produttori di dispositivi possono specificare un programma di avvio personalizzato sostituendo la risorsa del framework config_demoModeLauncherComponent specificata nel file config.xml come segue.

<!-- Component that is the default launcher when Retail Mode is enabled. -->
<string name="config_demoModeLauncherComponent">com.android.retaildemo/.DemoPlayer</string>

L'app DemoPlayer della demo retail, che si trova all'indirizzo /packages/apps/RetailDemo è il launcher personalizzato predefinito in Android Open Source Project (AOSP). L'app cerca un video in una partizione del dispositivo, ad esempio /data/preloads/demo/retail_demo.mp4, e lo riproduce in loop. Quando l'utente tocca lo schermo, il programma di avvio personalizzato disattiva il proprio componente Attività, il che provoca l'avvio del programma di avvio di sistema predefinito.

Il componente personalizzato del programma di avvio personalizzato deve essere contrassegnato come disattivato per impostazione predefinita in modo che non venga visualizzato in scenari non demo. Nello scenario demo, il server di sistema abilita config_demoModeLauncherComponent specificato all'avvio di una nuova sessione demo.

La procedura guidata di configurazione cerca anche il video menzionato in precedenza per fornire un'affordance per accedere alla modalità di vendita al dettaglio. SUW può essere modificato per cercare un altro segno specifico dell'OEM che indichi che la modalità di vendita al dettaglio è supportata se il video non fa parte della demo. Se sono presenti partizioni di sistema A/B, la partizione di sistema B deve contenere il video dimostrativo in /preloads/demo. Questo viene copiato in /data/preloads/demo al primo avvio.

Personalizzare le app precaricate per la modalità demo retail

Le app precaricate possono personalizzare la propria esperienza per la modalità demo in negozio chiamando l'API UserManager.isDemoUser() per verificare se l'app viene lanciata in un ambiente demo.

Nell'utente demo sono impostate alcune limitazioni, simili ai criteri per i dispositivi o i profili gestiti che impediscono ad app e utenti di eseguire determinate operazioni. Una di queste limitazioni è DISALLOW_MODIFY_ACCOUNTS. Con questa limitazione, AccountManager e Impostazioni non consentono l'aggiunta di account. Alcune app Google reagiscono a questa limitazione e mostrano un messaggio di errore, mentre altre non richiedono un account (ad esempio YouTube e Foto). Consigliamo alle app OEM anche di controllare se DISALLOW_MODIFY_ACCOUNTS è impostata e di gestire lo scenario di conseguenza.

Aggiornamenti di sistema

Per impostazione predefinita, quando è abilitata la modalità retail, i criteri relativi ai dispositivi sono impostati sull'aggiornamento automatico over-the-air (OTA). I dispositivi di vendita al dettaglio scaricheranno, riavvieranno e installeranno l'aggiornamento (rispettando le soglie della batteria) senza l'intervento dell'utente.

App demo retail

L'implementazione della modalità demo in negozio basata sul proprietario del dispositivo richiede l'impostazione di un'app Device Policy Controller come proprietario del dispositivo. AOSP contiene un'implementazione di riferimento dell'app RetailDemo in /packages/apps/RetailDemo.

Le app di proprietà del dispositivo non richiedono privilegi con escalation o preinstallazione sull'immagine di sistema e possono essere scaricate durante la procedura di configurazione o provisioning. Sono implementate in gran parte come le app tradizionali, con le seguenti differenze:

Le API della classe DevicePolicyManager consentono al proprietario del dispositivo (DO) e al proprietario del profilo (PO) di applicare vari criteri per i dispositivi. Di seguito sono elencate alcune funzioni di DevicePolicyManager applicabili alla modalità demo retail.

  • Creare e gestire gli utenti.

  • riavvia il dispositivo.

  • Imposta i pacchetti consentiti per LockTask.

  • Installa i pacchetti tramite PackageInstaller.

  • Blocca la disinstallazione dei pacchetti.

  • Attiva gli aggiornamenti automatici di sistema. I dispositivi scaricheranno e applicheranno automaticamente gli aggiornamenti OTA.

  • Disattiva il blocco tastiera.

  • Impedire l'impostazione di password o impronte.

  • Imposta un insieme di impostazioni Settings.Global, Settings.Secure e Settings.System incluse nella lista consentita.

  • Imposta il criterio di autorizzazione su PERMISSION_POLICY_AUTO_GRANT, che concede automaticamente tutte le autorizzazioni di runtime. Le autorizzazioni possono essere concesse anche in modo più specifico: una singola autorizzazione a una singola app. Questo non vale per le autorizzazioni di gestione app, che gli utenti devono comunque concedere in base all'utente e all'app.

  • Imposta le limitazioni utente pertinenti alla modalità di vendita al dettaglio come definite in UserManager come segue.

    • DISALLOW_MODIFY_ACCOUNTS
    • DISALLOW_USB_FILE_TRANSFER
    • DISALLOW_DEBUGGING_FEATURES
    • DISALLOW_CONFIG_WIFI
    • DISALLOW_CONFIG_BLUETOOTH
    • DISALLOW_INSTALL_UNKNOWN_SOURCES
    • DISALLOW_CONFIG_MOBILE_NETWORKS

Aggiornare il video dimostrativo utilizzando il web

L'app RetailDemo in /packages/apps/RetailDemo ha la possibilità di aggiornare il video dimostrativo se è presente connettività di rete. L'URL da cui scaricare il video può essere configurato sostituendo il seguente valore di stringa nell'app RetailDemo.

<!-- URL where the retail demo video can be downloaded from. -->
<string name="retail_demo_video_download_url"></string>

Se è necessario utilizzare video diversi in regioni diverse, è possibile configurare URL di download diversi utilizzando risorse di stringhe specifiche per le impostazioni internazionali in res/values-*/strings.xml. Ad esempio, se è necessario utilizzare video diversi negli Stati Uniti e in Gran Bretagna, gli URL di download corrispondenti possono essere inseriti rispettivamente in res/values-en-rUS/strings.xml e res/values-en-rGB/strings.xml, come mostrato di seguito.

  • In res/values-en-rUS/strings.xml:

    <string name="retail_demo_video_download_url">download URL for US video goes here</string>
    
  • In res/values-en-rGB/strings.xml:

    <string name="retail_demo_video_download_url">download URL for UK video goes here</string>
    

Il video viene scaricato al massimo una volta per ogni riavvio del dispositivo. Quando il video sul dispositivo viene riprodotto, l'app RetailDemo controlla in background se è stato fornito l'URL di download e se il video all'URL è più recente di quello in riproduzione.

In questo caso, l'app RetailDemo scarica e avvia la riproduzione del video. Una volta scaricato, il video viene utilizzato per la riproduzione in tutte le sessioni demo future. Nessuno di questi controlli verrà eseguito di nuovo fino al riavvio successivo.

Linee guida per i video dimostrativi

I video dimostrativi devono essere in layout verticale o, se tablet, nell'orientamento naturale del dispositivo e possono avere una durata superiore a cinque secondi. I contenuti non devono causare burn-in, poiché verranno riprodotti costantemente quando sono visualizzati.

Per ulteriori informazioni, consulta le definizioni per gli sviluppatori Android di utenti, profili e account, la documentazione dell'API Device Policy Manager e l'app di esempio Proprietario del dispositivo.

Convalida

CTS non copre la modalità demo per la vendita al dettaglio perché è una funzionalità facoltativa. I test devono essere eseguiti manualmente o con test delle unità per l'app demo.

Sessione demo

Configurazione della sessione demo

I dispositivi demo retail potrebbero avviarsi in modalità demo retail se sono stati configurati per la modalità demo dall'azienda. In alternativa, i dipendenti possono abilitare la modalità retail direttamente dalla configurazione guidata.

Modalità demo retail

Figura 2. Modalità di dimostrazione per la vendita al dettaglio

Mostra sessione demo

Quando il dispositivo entra in modalità retail, passa a un nuovo utente demo e avvia automaticamente l'Avvio app personalizzato specificato nella risorsa overlay, come descritto in Implementazione. Per impostazione predefinita, questo programma di avvio personalizzato riproduce il video demo in loop finché l'utente non tocca lo schermo per avviare una sessione utente demo. A quel punto, Avvio app personalizzato avvia Avvio app di sistema e poi esce. Gli OEM possono modificare l'avvio app personalizzato per avviare anche un altro servizio o un'altra attività all'uscita.

Per mantenere l'integrità della modalità di vendita al dettaglio, la tastiera protetta è disattivata e alcune azioni delle Impostazioni rapide che potrebbero influire negativamente sulla modalità di vendita al dettaglio non sono consentite, tra cui le seguenti.

  • Pulsante di attivazione/disattivazione della modalità aereo.
  • Rimozione o modifica dei punti di accesso Wi-Fi (Impostazioni).
  • Cambio di operatore (Impostazioni).
  • Configurazione dell'hotspot (Impostazioni).
  • Cambio utente.

Inoltre, l'accesso è bloccato anche per alcune impostazioni globali che possono influire sulla modalità di vendita al dettaglio disattivando quanto segue:

  • Impostazioni Wi-Fi.
  • Opzioni di configurazione della rete mobile, in particolare gli hotspot.
  • Configurazione Bluetooth.
  • Backup e ripristino, Data e ora e Reti mobili (non vengono visualizzati affatto).

Se l'utente è inattivo per un determinato periodo di tempo (90 secondi per impostazione predefinita), la modalità di vendita al dettaglio mostra una finestra di dialogo di sistema che chiede all'utente di uscire dalla sessione o di continuare. Se l'utente sceglie di uscire o se non risponde per cinque secondi, la modalità vendita al dettaglio rimuove l'utente demo corrente, passa a un nuovo utente demo e fa di nuovo il loop del video originale. Se lo schermo si spegne con il tasto di accensione, si riattiva automaticamente dopo qualche secondo.

Dopo aver chiuso una sessione di prova, i dispositivi si disattivano e reimpostano alcune impostazioni globali, tra cui:

  • Luminosità
  • Rotazione automatica
  • Torcia
  • Lingua
  • Accessibilità

Uscire dalla modalità demo retail

Per uscire dalla modalità di vendita al dettaglio, gli addetti alla vendita al dettaglio devono assicurarsi che il dispositivo demo non sia registrato nella gestione dei dispositivi e ripristinare i dati di fabbrica del dispositivo dal bootloader.