Modalità demo al dettaglio

Android 7.1.1 ha introdotto il supporto a livello di sistema per la modalità demo al dettaglio in modo che i clienti possano esaminare i dispositivi in ​​azione nei negozi al dettaglio. I dispositivi vengono configurati per la demo al dettaglio utilizzando un'app del proprietario 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 demo al dettaglio. Android 8.1 rivede questo supporto per creare utenti demo tramite l'API DevicePolicyManager createAndManageUser . Ciò consente una personalizzazione OEM molto maggiore rispetto alla modalità di vendita al dettaglio standard in termini di gestione degli utenti e gestione dei criteri del dispositivo sul dispositivo demo.

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

Implementazione in Android 8.1 e versioni successive

Questa sezione evidenzia i miglioramenti della piattaforma e descrive l'app demo di vendita al dettaglio in Android 8.1 e versioni successive.

Cambiamenti della piattaforma

Imposta DEVICE_DEMO_MODE

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

Abilita RetailDemoModeService

Nei dispositivi che implementano una modalità demo di vendita al dettaglio, la configurazione guidata imposta un'impostazione globale Global.DEVICE_DEMO_MODE su true per indicare che il dispositivo è entrato in modalità vendita al dettaglio. Dopo aver visualizzato questa impostazione, RetailDemoModeService crea un utente demo e passa ad esso quando viene avviato l'utente 0, abilita l'utilità di avvio personalizzato specificato in una risorsa overlay e disabilita SUW. Anche System Server e SystemUI utilizzano questo flag per gestire gli aspetti della modalità di vendita al dettaglio.

Imposta il launcher personalizzato o il lettore video

I produttori di dispositivi possono specificare un launcher personalizzato sovrascrivendo la risorsa 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 demo al dettaglio disponibile in /packages/apps/RetailDemo è l'avvio personalizzato predefinito nel progetto Android Open Source (AOSP). L'app cerca un video in una partizione del dispositivo come /data/preloads/demo/retail_demo.mp4 e lo riproduce in loop. Quando l'utente tocca lo schermo, il launcher personalizzato disabilita il suo componente di attività, che provoca l'avvio del launcher di sistema predefinito.

L'utilità di avvio personalizzato deve avere il componente personalizzato contrassegnato come disabilitato per impostazione predefinita in modo che non venga visualizzato in scenari non demo. Nello scenario demo, System Server abilita il config_demoModeLauncherComponent specificato quando si avvia una nuova sessione demo.

La procedura guidata di configurazione cerca anche il video menzionato in precedenza per fornire un'opportunità per accedere alla modalità vendita al dettaglio. SUW può essere modificato per cercare qualche altro segnale specifico dell'OEM che indica che la modalità 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.

Personalizza le app precaricate per la modalità demo al dettaglio

Le app precaricate possono personalizzare la propria esperienza per la modalità demo di vendita al dettaglio chiamando l'API UserManager.isDemoUser() per verificare se l'app viene avviata in un ambiente demo.

Nell'utente demo vengono impostate alcune restrizioni, simili ai criteri del dispositivo o del profilo gestiti che impediscono ad app e utenti di eseguire determinate operazioni. Una di queste restrizioni è DISALLOW_MODIFY_ACCOUNTS . Con questa restrizione, AccountManager e Impostazioni non consentono l'aggiunta di account. Alcune app Google reagiscono a questa restrizione e mostrano un messaggio di errore, mentre altre non richiedono un account (come YouTube e Foto). È consigliabile che le app OEM controllino anche se DISALLOW_MODIFY_ACCOUNTS è impostato e gestiscano lo scenario di conseguenza.

Aggiornamenti di sistema

Per impostazione predefinita, quando è abilitata la modalità vendita al dettaglio, i criteri del dispositivo sono impostati automaticamente sull'aggiornamento via etere (OTA). I dispositivi al dettaglio scaricheranno, si riavvieranno e installeranno l'aggiornamento (rispettando le soglie della batteria) senza l'interazione dell'utente.

Applicazione dimostrativa per la vendita al dettaglio

L'implementazione della modalità demo di vendita al dettaglio basata sul proprietario del dispositivo richiede che un'app Device Policy Controller sia impostata come proprietario del dispositivo. L'AOSP contiene un'implementazione di riferimento dell'app RetailDemo in /packages/apps/RetailDemo .

Le app del proprietario del dispositivo non necessitano di privilegi elevati o di preinstallazione sull'immagine di sistema e possono essere scaricate durante il processo di configurazione o provisioning. Sono per lo più implementate come le app tradizionali, con le seguenti differenze:

Le API nella classe DevicePolicyManager consentono al proprietario del dispositivo (DO) e al proprietario del profilo (PO) di applicare varie policy del dispositivo. Alcune delle funzioni DevicePolicyManager applicabili alla modalità demo al dettaglio sono elencate di seguito.

  • Creare e gestire gli utenti.

  • Riavviare il dispositivo.

  • Imposta i pacchetti consentiti da LockTask.

  • Installa i pacchetti tramite PackageInstaller .

  • Impedisce la disinstallazione dei pacchetti.

  • Abilita gli aggiornamenti automatici del sistema. I dispositivi scaricheranno e applicheranno automaticamente gli aggiornamenti OTA.

  • Disabilita lo scudo tastiera.

  • Impedisci l'impostazione di password o impronte digitali.

  • Configura un insieme di impostazioni Settings.Global , Settings.Secure e Settings.System consentite.

  • Imposta la policy di autorizzazione su PERMISSION_POLICY_AUTO_GRANT , che concede automaticamente tutte le autorizzazioni di runtime. Le autorizzazioni possono anche essere concesse in modo più ristretto: una singola autorizzazione per una singola app. Ciò non si applica alle autorizzazioni per le operazioni dell'app, che gli utenti devono comunque concedere in base al singolo utente e all'app.

  • Impostare le restrizioni utente relative alla modalità vendita al dettaglio come definito 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

Aggiorna il video dimostrativo utilizzando il Web

L'app RetailDemo in /packages/apps/RetailDemo ha la capacità di aggiornare il video dimostrativo se è presente connettività di rete. L'URL da cui scaricare il video può essere configurato sovrascrivendo 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 stringa specifiche della locale 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 in res/values-en-rUS/strings.xml e res/values-en-rGB/strings.xml , rispettivamente, indicati come segue.

  • 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>
    

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

In tal caso, l'app RetailDemo viene scaricata e inizia a riprodurre il video. Una volta scaricato, il video verrà utilizzato per la riproduzione in tutte le sessioni demo successive. Nessuno dei controlli verrà ripetuto fino al successivo riavvio.

Linee guida per il video dimostrativo

I video dimostrativi devono essere in formato verticale o, se tablet, nell'orientamento naturale del dispositivo e possono avere una durata superiore a cinque secondi. Il contenuto non deve provocare burn-in, poiché verrà riprodotto costantemente quando è visualizzato.

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

Validazione

CTS non copre la modalità demo al dettaglio perché è una funzionalità opzionale. I test devono essere condotti manualmente o con test unitari per l'app demo.

Sessione dimostrativa

Impostazione della sessione demo

I dispositivi demo al dettaglio possono avviarsi in modalità demo al dettaglio se configurati per la modalità demo dalla fabbrica. In alternativa, i dipendenti del settore vendita al dettaglio possono abilitare la modalità vendita al dettaglio direttamente dalla configurazione guidata.

Retail demo mode

Figura 2. Modalità dimostrativa al dettaglio

Visualizza la sessione demo

Quando il dispositivo entra in modalità vendita al dettaglio, passa a un nuovo utente demo e avvia automaticamente l'utilità di avvio personalizzato specificata nella risorsa overlay come descritto in Implementazione . Per impostazione predefinita, questo launcher personalizzato riproduce ripetutamente il video dimostrativo finché l'utente non tocca lo schermo per iniziare una sessione utente demo. A quel punto, il launcher personalizzato avvia il launcher del sistema e poi si chiude. Gli OEM possono modificare il programma di avvio personalizzato per avviare inoltre un altro servizio o attività all'uscita.

Per mantenere l'integrità della modalità vendita al dettaglio, il blocco tastiera è disabilitato e anche alcune azioni delle Impostazioni rapide che potrebbero influire negativamente sulla modalità vendita al dettaglio non sono consentite, incluse le seguenti.

  • Attiva/disattiva la modalità aereo.
  • Rimozione o modifica dei punti di accesso Wi-Fi (Impostazioni).
  • Modifica dell'operatore (Impostazioni).
  • Configurazione dell'hotspot (Impostazioni).
  • Cambio utente.

Inoltre, l'accesso è bloccato anche ad alcune impostazioni globali che possono influenzare la modalità di vendita al dettaglio disabilitando quanto segue:

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

Se l'utente rimane inattivo per un certo periodo di tempo (90 secondi per impostazione predefinita), la modalità vendita al dettaglio mostra una finestra di dialogo di sistema per chiedere all'utente di uscire dalla sessione o continuare. Se l'utente sceglie di uscire o se non riceve risposta per cinque secondi, la modalità vendita al dettaglio rimuove l'utente demo corrente, passa a un nuovo utente demo e riproduce nuovamente il video originale. Se lo schermo viene spento tramite il pulsante di accensione, si riaccenderà automaticamente dopo alcuni secondi.

Dopo essere usciti da una sessione demo, i dispositivi disattivano l'audio e ripristinano alcune impostazioni globali, tra cui:

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

Esci dalla modalità demo al dettaglio

Per uscire dalla modalità vendita al dettaglio, i dipendenti del negozio devono assicurarsi che il dispositivo demo non sia registrato nella gestione dei dispositivi e ripristinare le impostazioni di fabbrica del dispositivo dal boot loader.