Demomodus für den Einzelhandel

Mit Android 7.1.1 wird der Demomodus auf Systemebene unterstützt, können Kunden die Geräte im Einzelhandel in Aktion überprüfen. Geräte sind eingerichtet Demo für den Einzelhandel mit einer Geräteeigentümer-App, um sicherzustellen, dass die Gerätenutzung auf bestimmte Demomodus-Apps beschränkt. Endnutzer dürfen keine privates Konto auf einem Demogerät für den Einzelhandel. Unter Android 8.1 wird diese Unterstützung erstellen Demonutzer über DevicePolicyManager createAndManageUser der API erstellen. Dies ermöglicht weitaus mehr Anpassungsmöglichkeiten für OEMs an den Standard-Einzelhandelsmodus in Nutzungsbedingungen für die Nutzerverwaltung und Device Policy Management auf dem Demogerät.

Während DevicePolicyManager APIs können in älteren Versionen als Android 8.1, Nutzer vom Typ demo-type (DevicePolicyManager.MAKE_USER_DEMO) können nicht erstellt werden. mit der Methode createAndManageUser API in Versionen 8.0 und älter.

Implementierung in Android 8.1 und höher

In diesem Abschnitt werden die Verbesserungen an der Plattform und die Demo für den Einzelhandel beschrieben. für Android 8.1 und höher.

Plattformänderungen

DEVICE_DEMO_MODE festlegen

Bei Geräten, bei denen ein Demomodus für den Einzelhandel implementiert wird, muss der Modus festgelegt werden Settings.Global.DEVICE_DEMO_MODE bis 1 vor Bereitstellung, um anzugeben, dass das Gerät für den Einzelhandel bereitgestellt wird – Demo . Systemserver verwendet dieses Flag, um Aspekte des Einzelhandelsmodus zu verwalten, z. B. das Energieprofil und SystemUI

RetailDemoModeService aktivieren

Auf Geräten, auf denen ein Demomodus für den Einzelhandel implementiert ist, legt der Einrichtungsassistent eine globale Einstellung Global.DEVICE_DEMO_MODE auf true, um anzuzeigen, dass das Gerät in den Demomodus gewechselt ist. Nach RetailDemoModeService erstellt einen Demonutzer und wechselt zu diesem, wenn Nutzer 0 gestartet wird. den in einer Overlay-Ressource angegebenen benutzerdefinierten Launcher und deaktiviert SUW. System Server und SystemUI verwenden dieses Flag auch, um Aspekte des Einzelhandelsmodus zu verwalten.

Benutzerdefinierten Launcher oder Videoplayer einrichten

Gerätehersteller können einen benutzerdefinierten Launcher angeben, indem sie das Framework überschreiben. Ressource config_demoModeLauncherComponent, die in config.xml angegeben ist wie im Folgenden beschrieben.

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

Die DemoPlayer-App für den Einzelhandel unter /packages/apps/RetailDemo ist der standardmäßige benutzerdefinierte Launcher im Android Open Source Project (AOSP). Die App sucht in einer Gerätepartition wie /data/preloads/demo/retail_demo.mp4 nach einem Video und spielt es als Schleife ab. Wenn der Nutzer den Bildschirm berührt, wird der benutzerdefinierte Launcher deaktiviert die Aktivitätskomponente, was dazu führt, dass der Standard-Systemstarter zu starten.

Die benutzerdefinierte Komponente des benutzerdefinierten Launchers muss standardmäßig als deaktiviert gekennzeichnet sein. damit es auch in anderen Szenarien nicht angezeigt wird. Im Demoszenario ist System Der Server aktiviert die angegebene config_demoModeLauncherComponent beim Start eines neue Demo-Sitzung.

Der Einrichtungsassistent sucht auch nach dem zuvor erwähnten Video, um eine in den Einzelhandelsmodus einzusteigen. SUW kann geändert werden, um nach anderen OEM-spezifisches Zeichen dafür, dass der Einzelhandelsmodus unterstützt wird, wenn das Video nicht Teil eines der Demo. Wenn es System-A/B-Partitionen gibt, muss die System-B-Partition das Demovideo unter /preloads/demo enthalten. Diese wird kopiert in /data/preloads/demo beim ersten Start.

Vorinstallierte Apps für den Demomodus für den Einzelhandel anpassen

Vorinstallierte Apps können den Demomodus für den Einzelhandel anpassen, indem sie UserManager.isDemoUser() API, um zu prüfen, ob die App in einer Demoumgebung gestartet wird.

Für den Demonutzer sind bestimmte Einschränkungen festgelegt, ähnlich wie bei einem verwalteten Gerät oder Profilrichtlinien, die Apps und Nutzer daran hindern, bestimmte Vorgänge auszuführen. Eine dieser Einschränkungen ist DISALLOW_MODIFY_ACCOUNTS. Mit dieser Einschränkung kann der AccountManager und Einstellungen das Hinzufügen von Konten nicht zulassen. Einige Google-Apps reagieren auf diese Einschränkung und eine Fehlermeldung anzeigen und andere Nutzer nicht nach einem Konto fragen (z. B. YouTube und Google Fotos). Wir empfehlen, dass OEM-Apps auch prüfen, ob DISALLOW_MODIFY_ACCOUNTS ist festgelegt und behandelt das Szenario entsprechend.

Systemupdates

Wenn der Einzelhandelsmodus aktiviert ist, ist die Geräterichtlinie standardmäßig auf „Over The Air“ gesetzt. (OTA) wird automatisch aktualisiert. Geräte im Einzelhandel werden heruntergeladen, neu gestartet und installiert das Update (unter Berücksichtigung der Akku-Schwellenwerte) ohne Nutzerinteraktion durchzuführen.

Demo-App für den Einzelhandel

Für die Implementierung des Demomodus für den Einzelhandel ist ein Device Policy Controller App als Geräteeigentümer festzulegen. Die AOSP enthält eine RetailDemo-Referenz-App. Implementierung unter /packages/apps/RetailDemo.

Apps von Geräteeigentümern müssen weder erhöhte Berechtigungen noch eine Vorinstallation auf dem System-Image und kann während der Einrichtung oder Bereitstellung heruntergeladen werden. Sie werden größtenteils wie herkömmliche Apps implementiert, wobei Folgendes zu beachten ist: Unterschiede:

APIs in DevicePolicyManager Geräteinhaber und Profile Owners (PO) ermöglichen, verschiedene Geräte zu erzwingen Richtlinien. Einige der Funktionen von DevicePolicyManager Funktionen für den Demomodus für den Einzelhandel sind so aufgeführt.

  • Nutzer erstellen und verwalten

  • Starten Sie das Gerät neu.

  • Legen Sie für LockTask zulässige Pakete fest.

  • Installieren Sie Pakete über PackageInstaller.

  • Deinstallation von Paketen blockieren.

  • Aktivieren Sie automatische Systemupdates. OTA-Updates werden automatisch auf die Geräte heruntergeladen und angewendet.

  • Keyguard deaktivieren

  • Festlegen von Passwörtern oder Fingerabdrücken verhindern.

  • Setzen Sie Settings.Global auf die Zulassungsliste, Settings.Secure und Settings.System Einstellungen.

  • Legen Sie die Berechtigungsrichtlinie auf PERMISSION_POLICY_AUTO_GRANT fest, wodurch gewährt automatisch alle Laufzeitberechtigungen. Berechtigungen können auch enger gefasst: eine einzige Berechtigung für eine einzelne App. Dies gilt nicht für App-Operations-Berechtigungen, die Nutzer dennoch pro Nutzer und App gewähren müssen.

  • Für den Einzelhandelsmodus relevante Nutzereinschränkungen festlegen, wie in den Nutzermanager wie im Folgenden beschrieben.

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

Demovideo über das Web aktualisieren

Die RetailDemo App unter /packages/apps/RetailDemo kann das Demovideo aktualisieren, wenn eine Netzwerkverbindung besteht. Die URL, von der das Video heruntergeladen werden soll, kann konfiguriert werden, indem du Folgendes überschreibst: in der RetailDemo App.

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

Wenn unterschiedliche Videos in verschiedenen Regionen verwendet werden müssen, Download-URLs können mithilfe von gebietsspezifischen String-Ressourcen konfiguriert werden res/values-*/strings.xml Wenn beispielsweise unterschiedliche Videos in den USA und der in Großbritannien. Die entsprechenden Download-URLs können in res/values-en-rUS/strings.xml und res/values-en-rGB/strings.xml, wie im Folgenden dargestellt.

  • Gehen Sie in res/values-en-rUS/strings.xml so vor:

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

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

Dieses Video wird maximal einmal bei jedem Geräteneustart heruntergeladen. Wenn der Parameter Video auf dem Gerät wiedergegeben wird, prüft die RetailDemo App im Hintergrund. Die Download-URL ist angegeben und das Video unter der URL ist neuer als die angegebene URL. gespielt wird.

In diesem Fall wird die RetailDemo App heruntergeladen und beginnt mit der Wiedergabe des Videos. Sobald das Video heruntergeladen wurde, wird er zum Abspielen in allen Demositzungen verwendet. Keine der Überprüfungen wiederholen sich bis zum nächsten Neustart.

Richtlinien für Demovideos

Die Demovideos müssen im Hochformat vorliegen. Bei einem Tablet muss die natürliche Ausrichtung und kann eine beliebige Länge über fünf Sekunden haben. Inhalt darf nicht zu einem Einbrennen führen, da es fortlaufend abgespielt wird.

Siehe Definitionen für Android-Entwickler von Nutzern, Profilen und Konten: Dokumentation zur Device Policy Manager API und Beispiel-App „Geräteinhaber“ .

Zertifizierungsstufe

Der Demomodus für den Einzelhandel wird von CTS nicht berücksichtigt, da er eine optionale Funktion ist. Testen müssen manuell oder mit Einheitentests für die Demo-App durchgeführt werden.

Demositzung

Einrichtung der Demositzung

Demogeräte für den Einzelhandel starten möglicherweise im Demomodus für den Einzelhandel, wenn sie für den Demomodus konfiguriert sind aus der Fabrik. Alternativ können Mitarbeiter im Einzelhandel den Demomodus aktivieren. direkt über den Einrichtungsassistenten.

Demomodus für den Einzelhandel

Abbildung 2: Demomodus für Einzelhandel

Demositzung anzeigen

Wenn das Gerät in den Demomodus wechselt, wechselt es zu einem neuen Demonutzer Startet automatisch den in der Overlay-Ressource angegebenen benutzerdefinierten Launcher enthalten, wie unter Implementierung beschrieben. Standardmäßig Diese benutzerdefinierte Übersicht spielt das Demovideo so lange ab, bis der Nutzer die Schaltfläche Bildschirm, um eine Demo-Nutzersitzung zu starten. Zu diesem Zeitpunkt wird die benutzerdefinierte Übersicht gestartet. den System Launcher und wird dann beendet. OEMs können den benutzerdefinierten Launcher einen weiteren Dienst oder eine andere Aktivität starten.

Um die Integrität des Einzelhandelsmodus aufrechtzuerhalten, ist Keyguard deaktiviert und Aktionen über die Schnelleinstellungen, die sich negativ auf den Demomodus auswirken könnten, sind ebenfalls unzulässig, einschließlich der folgenden.

  • Ein/Aus-Schaltfläche für den Flugmodus.
  • WLAN-Zugangspunkte entfernen oder ändern (Einstellungen).
  • Mobilfunkanbieter wird gewechselt (Einstellungen).
  • Hotspot wird konfiguriert (Einstellungen).
  • Nutzerwechsel

Darüber hinaus wird der Zugriff auf einige globale Einstellungen blockiert, die sich auf Demomodus aktivieren, indem Sie Folgendes deaktivieren:

  • WLAN-Einstellungen.
  • Konfigurationsoptionen für Mobilfunknetze, insbesondere Hotspots.
  • Bluetooth-Konfiguration.
  • Sicherung und Zurücksetzen, Datum & Uhrzeit und Mobilfunknetze (sie werden nicht angezeigt).

Wenn der Nutzer eine Zeit lang inaktiv ist (standardmäßig 90 Sekunden), wird der Demomodus zeigt ein Systemdialogfeld an, in dem der Nutzer aufgefordert wird, die Sitzung zu beenden oder fortzufahren. Wenn der Nutzer die Anzeige verlässt oder fünf Sekunden lang keine Antwort erhält, entfernt den aktuellen Demonutzer, wechselt zu einem neuen Demonutzer durchläuft das Originalvideo noch einmal. Falls der Bildschirm über die Ein/Aus-Taste schaltet sich nach einigen Sekunden automatisch wieder ein.

Nach dem Beenden einer Demositzung schalten sich die Geräte automatisch stumm und setzen einige globale Einstellungen zurück. Einstellungen, einschließlich der folgenden:

  • Helligkeit
  • Automatisches Drehen
  • Taschenlampe
  • Sprache
  • Bedienungshilfen

Demomodus für Einzelhandel beenden

Um den Einzelhandelsmodus zu verlassen, müssen die Mitarbeiter im Einzelhandel dafür sorgen, dass das Demogerät nicht für die Geräteverwaltung registriert ist, und setzen Sie das Gerät über die Bootloader.