Tryb demo dla sklepów

W Androidzie 7.1.1 wprowadzono obsługę trybu demo dla sklepów na poziomie systemu, aby klienci mogli sprawdzać działanie urządzeń w sklepach. Urządzenia są konfigurowane do obsługi demo w sklepach za pomocą aplikacji właściciela urządzenia, aby zapewnić, że korzystanie z urządzenia jest ograniczone tylko do określonych aplikacji w trybie demonstracyjnym. Użytkownicy nie powinni mieć możliwości dodawania konta osobistego na urządzeniu demonstracyjnym w sklepie. W Androidzie 8.1 ta funkcja została rozszerzona o możliwość tworzenia użytkowników demonstracyjnych za pomocą interfejsu API createAndManageUser z DevicePolicyManager. Umożliwia to znacznie większą personalizację przez producenta w standardowym trybie sprzedaży detalicznej pod względem zarządzania użytkownikami i zarządzania zasadami dotyczącymi urządzenia na urządzeniu demonstracyjnym.

Chociaż interfejs DevicePolicyManagermożna używać w wersjach starszych niż Android 8.1, użytkowników typu demo (DevicePolicyManager.MAKE_USER_DEMO) nie można utworzyć za pomocą interfejsu API createAndManageUser w wersjach 8.0 i starszych.

Implementacja w 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ść 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 sprzedaży detalicznej, takimi jak profil zasilania i SystemUI.

Włącz RetailDemoModeService

W przypadku urządzeń z wdrożonym trybem demonstracyjnym dla sklepów kreator konfiguracji ustawia globalne ustawienie Global.DEVICE_DEMO_MODE na true, aby wskazać, że urządzenie weszło w tryb dla sklepów. Po wykryciu tego ustawienia usługa 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 zasobach nakładki i wyłącza SUW. SystemServer i SystemUI również używają tego parametru do zarządzania aspektami trybu obsługi klienta.

Ustawianie niestandardowego menu lub odtwarzacza 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 katalogu /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.

W niestandardowym programie uruchamiania komponent niestandardowy musi być domyślnie wyłączony, aby nie był widoczny w scenariach innych niż demonstracyjne. W sytuacji demonstracyjnej serwer systemowy włącza określoną usługę config_demoModeLauncherComponent podczas uruchamiania nowej sesji demonstracyjnej.

Podczas konfiguracji kreator sprawdza, czy jest dostępny wspomniany wcześniej film, aby wyświetlić opcję umożliwiającą przejście do trybu sprzedaży. 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 folderze /preloads/demo. Podczas pierwszego uruchomienia zostanie skopiowany do /data/preloads/demo.

Dostosowywanie wstępnie zainstalowanych aplikacji na potrzeby trybu demo dla sklepów

Wcześniej załadowane aplikacje mogą dostosowywać swoje działanie do trybu demonstracyjnego w sklepach, wywołując interfejs API UserManager.isDemoUser(), aby sprawdzić, czy aplikacja jest uruchamiana 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 pewnych operacji. Jednym z nich jest DISALLOW_MODIFY_ACCOUNTS. Z powodu tej restrykcji Menedżer kontUstawienia nie pozwalają na dodawanie kont. Niektóre aplikacje Google reagują na tę blokadę i wyświetlają komunikat o błędzie, a inne nie będą prosić o podanie danych konta (np. YouTube i Zdjęcia). Zalecamy, aby aplikacje OEM również sprawdzały, czy ustawiona jest wartość DISALLOW_MODIFY_ACCOUNTS, i odpowiednio reagowały na ten scenariusz.

Aktualizacje systemu

Domyślnie, gdy tryb sprzedaży detalicznej jest włączony, zasady urządzenia są ustawione tak, aby automatycznie aktualizować je przez Internet. 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.

trybu sprzedaży detalicznej.

Aplikacja demo dla sklepów

Wdrożenie trybu demonstracyjnego w sklepie wymaga ustawienia aplikacji Device Policy Controller jako właściciela urządzenia. AOSP zawiera referencyjną implementację aplikacji RetailDemo w katalogu /packages/apps/RetailDemo.

Aplikacje właściciela urządzenia nie wymagają podwyższonych uprawnień ani wstępnej instalacji w obrazu systemu. Można je pobrać podczas konfiguracji lub procesu obsługi. Są one wdrażane głównie jak tradycyjne aplikacje, z tymi różnicami:

Interfejsy API w klasie DevicePolicyManager umożliwiają właścicielowi urządzenia (DO) i właścicielowi profilu (PO) wymuszanie różnych zasad dotyczących urządzenia. 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ń Settings.Global, Settings.SecureSettings.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ć w bardziej ograniczonym zakresie: jedno uprawnienie dla jednej aplikacji. Nie dotyczy to uprawnień dostępu do danych aplikacji, które użytkownicy muszą przyznawać oddzielnie dla każdej aplikacji.

  • Ustaw ograniczenia użytkowników dotyczące trybu sprzedaży detalicznej zgodnie z definicją w UserManager:

    • 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, z którego ma być pobierany film, można skonfigurować, zastępując tę wartość ciągu znaków w aplikacji RetailDemo.

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

Jeśli w różnych regionach mają być używane różne filmy, możesz skonfigurować różne adresy URL pobierania, używając zasobów ciągu tekstowego dla danego regionu w pliku res/values-*/strings.xml. Jeśli na przykład w Stanach Zjednoczonych i Wielkiej Brytanii trzeba użyć różnych filmów, odpowiednie adresy URL do pobrania można umieścić odpowiednio w plikach res/values-pl-PL/strings.xml i res/values-pl-PL/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 maksymalnie raz po każdym ponownym uruchomieniu urządzenia. Podczas odtwarzania filmu na urządzeniu aplikacja RetailDemo sprawdza w tle, czy podany URL do pobrania jest aktualny i czy film pod tym adresem jest nowszy niż ten odtwarzany.

Jeśli tak, aplikacja RetailDemo pobierze film i zacznie go odtwarzać. Po pobraniu film będzie odtwarzany we wszystkich kolejnych sesjach demonstracyjnych. Żadna z nich nie zostanie powtórzona przed następnym uruchomieniem.

Wskazówki dotyczące filmów demonstracyjnych

Filmy demonstracyjne muszą mieć orientację pionową lub, w przypadku tabletów, orientację naturalną dla urządzenia. Ich czas trwania może być dowolny, ale musi być dłuższy 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 demonstracyjnego dla sklepów, ponieważ jest to funkcja opcjonalna. Testy muszą być przeprowadzane ręcznie lub za pomocą testów jednostkowych aplikacji demonstracyjnej.

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 firmy handlowej mogą też włączyć tryb sprzedaży detalicznej bezpośrednio w kreatorze konfiguracji.

Tryb demo dla sklepów

Rysunek 2. Tryb demonstracyjny dla sklepów

Wyświetlanie sesji demonstracyjnej

Gdy urządzenie przejdzie w tryb sprzedaży detalicznej, przełączy się na nowego użytkownika demonstracyjnego i automatycznie uruchomi spersonalizowany program uruchamiania określony w zasobach nakładki zgodnie z opisem w sekcji Wdrażanie. Domyślnie ten niestandardowy program uruchamiający odtwarza film demonstracyjny w kółko, dopóki użytkownik nie dotknie ekranu, aby rozpocząć sesję demonstracyjną. W tym momencie uruchamia się aplikacja uruchamiania niestandardowego, która następnie kończy działanie. Producenci OEM mogą zmodyfikować niestandardowy program uruchamiający, aby uruchamiał on dodatkowo inną usługę lub aktywność po wyjściu.

Aby zachować integralność trybu sprzedaży detalicznej, blokada klawiatury jest wyłączona, a niektóre działania w Ustawieniach Szybkich są również zabronione, ponieważ mogą negatywnie wpływać na tryb sprzedaży detalicznej.

  • 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. Dotyczy to:

  • Ustawienia Wi-Fi.
  • opcje konfiguracji sieci komórkowej, zwłaszcza hotspotów;
  • Konfiguracja Bluetooth.
  • Utwórz kopię zapasową i zresetuj, Data i godzina oraz Sieci komórkowe (nie są w ogóle widoczne).

Jeśli użytkownik nie wykonuje żadnych czynności przez pewien czas (domyślnie 90 sekund), tryb sprzedaży detalicznej wyświetla okno systemu, aby zachęcić użytkownika do zakończenia sesji lub jej kontynuowania. 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 zresetowują niektóre ustawienia globalne, w tym:

  • Jasność
  • Automatyczne obracanie
  • Latarka
  • Język
  • Ułatwienia dostępu

Wyłączanie trybu demo dla sklepów

Aby wyłączyć tryb sprzedaży detalicznej, pracownicy muszą się upewnić, że urządzenie demonstracyjne nie jest zarejestrowane w ramach zarządzania urządzeniami, i zresetować je do ustawień fabrycznych z poziomu programu rozruchowego.