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 seine Aktivitätskomponente, wodurch 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 Starten 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:
Alle Apps von Geräteeigentümern müssen die DeviceAdminReceiver Komponente, die als Autorisierungstoken für alle DevicePolicyManager APIs Die Komponente muss das Objekt
android.permission.BIND_DEVICE_ADMIN
enthalten. Berechtigung, die angeforderten besonderen Richtlinien als Metadaten hinzufügen und dieandroid.app.action.PROFILE_PROVISIONING_COMPLETE
filtern undandroid.app.action.DEVICE_ADMIN_ENABLED
Intents.Der Parameter DevicePolicyManager#MAKE_USER_DEMO , das zum Erstellen spezieller Demo-Nutzer gesetzt wird, ist eine verborgene API. Dieses Flag den Wert 0x4 konstant hat.
Die Geräteinhaberschaft darf nur über die Rolle zur Geräteverwaltung zugewiesen werden Inhaber oder ManagedProvisioning
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 weiterhin 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 in der Fabrik zu kaufen. Alternativ können Mitarbeiter im Einzelhandel den Demomodus aktivieren. direkt über den Einrichtungsassistenten.
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.