Android 7.1.1 wprowadził obsługę trybu demo dla sklepów na poziomie systemu, aby klienci mogli sprawdzać działanie urządzeń w sklepach. Urządzenia są skonfigurowane do wyświetlania w trybie demo dla sklepów z użyciem aplikacji właściciela urządzenia, aby umożliwić korzystanie z nich tylko w przypadku określonych aplikacji działających w trybie demonstracyjnym. Użytkownicy nie mogą dodać konta osobistego na urządzeniu trybu demo dla sklepów. W Androidzie 8.1 ta funkcja została rozszerzona o możliwość tworzenia użytkowników demonstracyjnych za pomocą interfejsu API createAndManageUser w ramach DevicePolicyManager. Umożliwia to znacznie większą personalizację przez producenta w ramach standardowego trybu sprzedaży detalicznej pod kątem zarządzania użytkownikami i zarządzania zasadami dotyczącymi urządzenia na urządzeniu demonstracyjnym.
Chociaż interfejsów API DevicePolicyManager można używać w wersjach starszych niż Android 8.1, użytkowników korzystających z wersji demonstracyjnej (DevicePolicyManager.MAKE_USER_DEMO
) nie można tworzyć za pomocą interfejsu createAndManageUser API w wersjach 8.0 i starszych.
Implementacja na Androidzie 8.1 i nowszych
W tej sekcji znajdziesz informacje o ulepszeniach platformy i aplikacji demo dla sprzedawców w Androidzie 8.1 i nowszych.
Zmiany dotyczące platform
Ustaw DEVICE_DEMO_MODE
Urządzenia z włączonym trybem demonstracyjnym dla klienta końcowego muszą mieć wartość parametru Settings.Global.DEVICE_DEMO_MODE
ustawioną na 1 przed wdrożeniem, aby wskazać, że urządzenie jest wdrożone w trybie demonstracyjnym dla klienta końcowego.
SystemServer używa tej flagi do zarządzania aspektami trybu handlu detalicznego, takimi jak profil zasilania i interfejs SystemUI.
Włącz RetailDemoModeService
W przypadku urządzeń z wdrożonym trybem demonstracyjnym dla sklepów kreator konfiguracji ustawia globalnie parametr Global.DEVICE_DEMO_MODE
na true
, aby wskazać, że urządzenie weszło w tryb dla sklepów. Po zobaczeniu tego ustawienia RetailDemoModeService tworzy użytkownika demonstracyjnego i przełącza się na niego po uruchomieniu użytkownika 0, włącza niestandardowy program uruchamiający określony w zasobie nakładki i wyłącza SUW. System Server i SystemUI używają tego parametru do zarządzania aspektami trybu dla sklepów.
Ustaw niestandardowy program uruchamiający lub odtwarzacz wideo
Producenci urządzeń mogą określić niestandardowy program uruchamiający, zastępując zasób frameworku config_demoModeLauncherComponent
określony w pliku config.xml w następujący sposób.
<!-- Component that is the default launcher when Retail Mode is enabled. -->
<string name="config_demoModeLauncherComponent">com.android.retaildemo/.DemoPlayer</string>
Demo aplikacji DemoPlayer, która znajduje się w folderze /packages/apps/RetailDemo, jest domyślnym niestandardowym programem uruchamiającym w ramach Projektu Android Open Source (AOSP). Aplikacja wyszukuje film na partycji urządzenia, np. /data/preloads/demo/retail_demo.mp4, i odtwarza go w pętli. Gdy użytkownik dotknie ekranu, niestandardowy program uruchamiający wyłącza komponent aktywności, co spowoduje uruchomienie domyślnego programu uruchamiającego systemu.
Aby niestandardowy program uruchamiający nie wyświetlał się w scenariuszach innych niż demonstracyjne, musi mieć domyślnie włączony komponent niestandardowy jako wyłączony. W scenariuszu demonstracyjnym serwer systemu włącza określony config_demoModeLauncherComponent
podczas uruchamiania nowej sesji demonstracyjnej.
Kreator konfiguracji wyszukuje też wspomniany wcześniej film, aby umożliwić przejście w tryb sprzedaży detalicznej. SUW można zmodyfikować, aby sprawdzać inne sygnały OEM, że tryb sprzedaży detalicznej jest obsługiwany, jeśli film nie jest częścią wersji demonstracyjnej. Jeśli istnieją partycje systemu A/B, partycja systemu B musi zawierać film demonstracyjny w katalogu /preloads/demo. Zostanie on skopiowany do folderu /data/preloads/demo przy pierwszym uruchomieniu.
Dostosowywanie wstępnie załadowanych aplikacji w trybie demo dla sklepów
Wstępnie załadowane aplikacje mogą dostosować działanie trybu demo dla sklepów, wywołując interfejs API UserManager.isDemoUser()
w celu sprawdzenia, czy aplikacja została uruchomiona w środowisku demonstracyjnym.
Użytkownik demonstracyjny ma określone ograniczenia podobne do zasad dotyczących zarządzanego urządzenia lub profilu, które uniemożliwiają aplikacjom i użytkownikom wykonywanie niektórych operacji.
Jednym z nich jest DISALLOW_MODIFY_ACCOUNTS
. Z powodu tej restrykcji Menedżer kont i Ustawienia nie zezwalają na dodawanie kont. Niektóre aplikacje Google reagują na to ograniczenie i wyświetlają komunikat o błędzie, a inne nie pytają o utworzenie konta (np. YouTube czy Zdjęcia). Zalecamy również, aby aplikacje OEM sprawdziły, czy skonfigurowano ustawienie DISALLOW_MODIFY_ACCOUNTS
, i odpowiednio zareagowały na sytuację.
Aktualizacje systemu
Gdy włączony jest tryb sklepu, zasady dotyczące urządzeń są domyślnie aktualizowane bezprzewodowo (OTA) automatycznie. Urządzenia sprzedawane detalicznie będą pobierać, ponownie uruchamiać i instalować aktualizację (z uwzględnieniem progów naładowania baterii) bez udziału użytkownika.
Aplikacja demo dla sklepów
Wdrożenie trybu demonstracyjnego dla sprzedawców wymaga ustawienia aplikacji Device Policy Controller jako właściciela urządzenia. AOSP zawiera referencyjną implementację aplikacji RetailDemo w /packages/apps/RetailDemo.
Aplikacje właściciela urządzenia nie wymagają podwyższonych uprawnień ani wstępnej instalacji w obrazie systemowym i można je pobrać podczas konfiguracji lub obsługi administracyjnej. Są one w większości wdrażane jak tradycyjne aplikacje, z tymi różnicami:
Wszystkie aplikacje właściciela urządzenia muszą zawierać komponent DeviceAdminReceiver, który służy jako token autoryzacji dla wszystkich interfejsów API DevicePolicyManager. Komponent musi mieć uprawnienia
android.permission.BIND_DEVICE_ADMIN
, zawierać żądane zasady specjalne jako metadane oraz filtrować intencjeandroid.app.action.PROFILE_PROVISIONING_COMPLETE
iandroid.app.action.DEVICE_ADMIN_ENABLED
.Flaga DevicePolicyManager#MAKE_USER_DEMO, która służy do tworzenia specjalnych użytkowników typu „demo”, jest ukrytym interfejsem API. Ten parametr ma stałą wartość 0x4.
Własność urządzenia może być przypisana tylko przez właściciela roli zarządzania urządzeniami lub aplikacji Managed Provisioninging.
Interfejsy API w klasie DevicePolicyManager włączają funkcje właścicieli urządzeń i właściciela profilu (PO) w celu egzekwowania różnych zasad dotyczących urządzeń. Poniżej znajdziesz niektóre funkcje DevicePolicyManager, które można stosować w ramach trybu demo dla sklepów.
Tworzenie kont użytkowników i zarządzanie nimi.
Zrestartuj urządzenie.
Ustaw dozwolone pakiety LockTask.
Zainstaluj pakiety za pomocą PackageInstaller.
Blokowanie możliwości odinstalowywania pakietów.
Włącz automatyczne aktualizacje systemu. Urządzenia będą automatycznie pobierać i stosować aktualizacje OTA.
Wyłącz ekran blokady.
uniemożliwiać ustawianie haseł lub odcisków palców;
Ustaw listę dozwolonych ustawień opcji Settings.Global, Settings.Secure i Settings.System.
Ustaw zasadę dotyczącą uprawnień na
PERMISSION_POLICY_AUTO_GRANT
, która automatycznie przyznaje wszystkie uprawnienia w czasie działania. Uprawnienia można też przyznawać bardziej precyzyjnie: pojedyncze uprawnienia dla jednej aplikacji. Nie dotyczy to uprawnień do operacji aplikacji, które użytkownicy muszą przyznawać osobno dla poszczególnych aplikacji.Ustaw ograniczenia dotyczące użytkowników obowiązujące w trybie sklepu zgodnie z definicją w sekcji UserManager w ten sposób.
DISALLOW_MODIFY_ACCOUNTS
DISALLOW_USB_FILE_TRANSFER
DISALLOW_DEBUGGING_FEATURES
DISALLOW_CONFIG_WIFI
DISALLOW_CONFIG_BLUETOOTH
DISALLOW_INSTALL_UNKNOWN_SOURCES
DISALLOW_CONFIG_MOBILE_NETWORKS
Aktualizowanie filmu demonstracyjnego w przeglądarce
Aplikacja RetailDemo w katalogu /packages/apps/RetailDemo może aktualizować film demonstracyjny, jeśli jest połączona z siecią. Adres URL pobierania filmu można skonfigurować, zastępując podaną niżej wartość ciągu w aplikacji RetailDemo.
<!-- URL where the retail demo video can be downloaded from. -->
<string name="retail_demo_video_download_url"></string>
Jeśli w poszczególnych regionach muszą być używane różne filmy, możesz skonfigurować różne adresy URL pobierania, korzystając z zasobów ciągu tekstowego specyficznych dla języka w pliku res/values-*/strings.xml. Jeśli np. w Stanach Zjednoczonych i Wielkiej Brytanii konieczne jest wykorzystanie różnych filmów, odpowiednie adresy URL pobierania możesz umieścić odpowiednio w pliku res/values-en-rUS/strings.xml i w pliku res/values-en-rGB/strings.xml, jak pokazano poniżej.
W res/values-en-rUS/strings.xml:
<string name="retail_demo_video_download_url">download URL for US video goes here</string>
W res/values-pl-rGB/strings.xml:
<string name="retail_demo_video_download_url">download URL for UK video goes here</string>
Ten film jest pobierany najwyżej raz przy każdym ponownym uruchomieniu urządzenia. Podczas odtwarzania filmu na urządzeniu aplikacja RetailDemo sprawdza w tle, czy został podany URL pobierania i film pod tym adresem jest nowszy od odtwarzanego.
Jeśli tak, aplikacja RetailDemo pobierze film i zacznie go odtwarzać. Po pobraniu film będzie odtwarzany we wszystkich kolejnych sesjach demonstracyjnych. Żadna kontrola nie jest przeprowadzana, dopóki nie zostanie ponownie uruchomiona.
Wskazówki dotyczące filmów demonstracyjnych
Filmy demonstracyjne muszą być w układzie pionowym lub, w przypadku tabletu, w naturalnej orientacji urządzenia i mieć dowolną długość większą niż 5 sekund. Treści nie mogą powodować wypalenia ekranu, ponieważ będą odtwarzane bez przerwy.
Więcej informacji znajdziesz w definicjach użytkowników, profili i kont na potrzeby Androida, dokumentacji interfejsu Device Policy Manager API oraz przykładowej aplikacji dla właściciela urządzenia.
Weryfikacja
CTS nie obejmuje trybu demo dla sklepów, ponieważ jest to funkcja opcjonalna. W przypadku aplikacji w wersji demonstracyjnej testy należy przeprowadzać ręcznie lub za pomocą testów jednostkowych.
Sesja demonstracyjna
Konfiguracja sesji demonstracyjnej
Urządzenia demo dla sklepów mogą uruchamiać się w trybie demo dla sklepów, jeśli zostały skonfigurowane w tym trybie fabrycznie. Pracownicy sprzedaży mogą też włączyć tryb sprzedaży bezpośrednio w asystencie konfiguracji.
Rysunek 2. Tryb demonstracyjny dla sklepów
Wyświetlanie sesji demonstracyjnej
Gdy urządzenie przechodzi w tryb sklepu, przełącza się na nowego użytkownika demonstracyjnego i automatycznie uruchamia niestandardowy program uruchamiający określony w zasobie nakładki zgodnie z opisem w sekcji Implementacja. Domyślnie ten niestandardowy program uruchamiający odtwarza film demonstracyjny w kółko, dopóki użytkownik nie dotknie ekranu, aby rozpocząć sesję demonstracyjną. Niestandardowy program uruchamiający uruchamia się wtedy i zamyka. Producenci OEM mogą zmienić niestandardowy program uruchamiania, aby dodatkowo uruchamiać inną usługę lub aktywność po wyjściu.
Aby zachować integralność trybu sklepu, blokada klawiszy jest wyłączona, a niektóre działania z Szybkich ustawień, które mogą negatywnie wpływać na tryb sklepu, są również niedozwolone. Obejmuje to m.in. te działania.
- Przełącznik trybu samolotowego.
- usuwanie lub modyfikowanie punktów dostępu Wi-Fi (Ustawienia).
- Zmiana operatora (Ustawienia).
- Konfigurowanie hotspota (Ustawienia).
- Przełączanie użytkowników.
Blokowany jest też dostęp do niektórych ustawień globalnych, które mogą wpływać na tryb sprzedaży detalicznej. Wyłączenie tych ustawień:
- Ustawienia Wi-Fi.
- Opcje konfiguracji sieci komórkowej, w szczególności hotspotów.
- Konfiguracja Bluetooth.
- Kopia zapasowa i resetowanie, Data i godzina oraz Sieci komórkowe (nie są wyświetlane).
Jeśli użytkownik nie wykonuje żadnych czynności przez pewien czas (domyślnie 90 sekund), tryb sprzedaży detalicznej wyświetla okno systemowe z prośbą o zakończenie sesji lub jej kontynuowanie. Jeśli użytkownik zdecyduje się zamknąć aplikację lub nie będzie reagować przez 5 sekund, tryb sprzedaży detalicznej usunie obecnego użytkownika demonstracyjnego, przełączy się na nowego użytkownika demonstracyjnego i ponownie odtworzy oryginalny film. Jeśli ekran jest wyłączony za pomocą przycisku zasilania, po kilku sekundach włączy się automatycznie.
Po zakończeniu sesji demonstracyjnej urządzenia wyciszają się i resetują niektóre ustawienia globalne, takie jak:
- Jasność
- Automatyczne obracanie
- Latarka
- Język
- Ułatwienia dostępu
Wyłączanie trybu demo dla sklepów
Aby wyjść z trybu dla sklepów, pracownicy sklepu muszą się upewnić, że urządzenie demonstracyjne nie jest zarejestrowane w funkcji zarządzania urządzeniami, i przywrócić je do ustawień fabrycznych za pomocą programu rozruchowego.