Detaliczny tryb demonstracyjny

W systemie Android 7.1.1 wprowadzono obsługę na poziomie systemu detalicznego trybu demonstracyjnego, dzięki czemu klienci mogą sprawdzić urządzenia w działaniu w sklepach detalicznych. Urządzenia są konfigurowane do wersji demonstracyjnej w wersji detalicznej za pomocą aplikacji właściciela urządzenia, aby mieć pewność, że korzystanie z urządzenia jest ograniczone tylko do niektórych aplikacji w trybie demonstracyjnym. Użytkownicy końcowi nie mogą mieć możliwości dodania konta osobistego na urządzeniu demonstracyjnym do sprzedaży detalicznej. W systemie Android 8.1 zmieniono tę obsługę, aby utworzyć użytkowników demonstracyjnych za pośrednictwem interfejsu API DevicePolicyManager createAndManageUser . Umożliwia to znacznie większe dostosowanie OEM do standardowego trybu sprzedaży detalicznej w zakresie zarządzania użytkownikami i zarządzania polityką urządzenia na urządzeniu demonstracyjnym.

Chociaż interfejsów API DevicePolicyManager można używać w wersjach wcześniejszych niż Android 8.1, użytkowników typu demonstracyjnego ( DevicePolicyManager.MAKE_USER_DEMO ) nie można tworzyć za pomocą interfejsu API createAndManageUser w wersjach 8.0 i wcześniejszych.

Implementacja w systemie Android 8.1 i nowszych

W tej sekcji omówiono ulepszenia platformy i opisano aplikację demonstracyjną dla handlu detalicznego w systemie Android 8.1 i nowszych wersjach.

Zmiany na platformie

Ustaw DEVICE_DEMO_MODE

Urządzenia wdrażające detaliczny tryb demonstracyjny oparty na właścicielu urządzenia muszą ustawić Settings.Global.DEVICE_DEMO_MODE na 1 przed udostępnieniem, aby wskazać, że urządzenie jest udostępniane w detalicznym trybie demonstracyjnym. SystemServer używa tej flagi do zarządzania aspektami trybu detalicznego, takimi jak profil zasilania i SystemUI.

Włącz usługę RetailDemoModeService

W przypadku urządzeń wdrażających detaliczny tryb demonstracyjny kreator konfiguracji ustawia ustawienie globalne Global.DEVICE_DEMO_MODE na true , aby wskazać, że urządzenie przeszło w tryb detaliczny. Po zobaczeniu 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 zasobie nakładki i wyłącza SUW. Serwer systemowy i SystemUI również używają tej flagi do zarządzania aspektami trybu detalicznego.

Ustaw niestandardowy program uruchamiający lub odtwarzacz wideo

Producenci urządzeń mogą określić niestandardowy program uruchamiający, zastępując zasób platformy 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>

Detaliczna wersja demonstracyjna DemoPlayer znajdująca się w /packages/apps/RetailDemo jest domyślnym niestandardowym programem uruchamiającym w projekcie Android Open Source Project (AOSP). Aplikacja wyszukuje wideo na partycji urządzenia, takiej jak /data/preloads/demo/retail_demo.mp4 i odtwarza je w pętli. Gdy użytkownik dotknie ekranu, niestandardowy program uruchamiający wyłącza swój komponent aktywności, co powoduje uruchomienie domyślnego programu uruchamiającego system.

Niestandardowy program uruchamiający musi mieć domyślnie oznaczony komponent niestandardowy jako wyłączony, aby nie był wyświetlany w scenariuszach innych niż demo. W scenariuszu demonstracyjnym serwer System Server włącza określony config_demoModeLauncherComponent podczas rozpoczynania nowej sesji demonstracyjnej.

Kreator konfiguracji wyszukuje również wspomniany wcześniej film, aby umożliwić przejście do trybu sprzedaży detalicznej. SUW można zmodyfikować w celu wyszukania innego znaku specyficznego dla OEM, wskazującego, że tryb detaliczny jest obsługiwany, jeśli wideo nie jest częścią wersji demonstracyjnej. Jeśli istnieją partycje systemowe A/B, partycja systemowa B musi zawierać wideo demonstracyjne w katalogu /preloads/demo. Zostanie to skopiowane do /data/preloads/demo przy pierwszym uruchomieniu.

Dostosuj wstępnie załadowane aplikacje do trybu demonstracyjnego w handlu detalicznym

Fabrycznie załadowane aplikacje mogą dostosować swoje działanie do trybu demonstracyjnego w handlu detalicznym, wywołując interfejs API UserManager.isDemoUser() w celu sprawdzenia, czy aplikacja jest uruchamiana w środowisku demonstracyjnym.

W przypadku użytkownika demonstracyjnego ustawione są pewne ograniczenia, podobne do zasad zarządzanego urządzenia lub profilu, które uniemożliwiają aplikacjom i użytkownikom wykonywanie określonych operacji. Jednym z tych ograniczeń jest DISALLOW_MODIFY_ACCOUNTS . W przypadku tego ograniczenia Menedżer kont i Ustawienia nie pozwalają na dodawanie kont. Niektóre aplikacje Google reagują na to ograniczenie i wyświetlają komunikat o błędzie, a inne nie wyświetlają monitu o założenie konta (np. YouTube i Zdjęcia). Zalecamy, aby aplikacje OEM sprawdzały również, czy ustawiono DISALLOW_MODIFY_ACCOUNTS i odpowiednio obsługiwały scenariusz.

Aktualizacje systemu

Domyślnie, gdy tryb sprzedaży detalicznej jest włączony, zasady dotyczące urządzeń są ustawione na automatyczną aktualizację bezprzewodową (OTA). Urządzenia detaliczne pobiorą, uruchomią ponownie i zainstalują aktualizację (z uwzględnieniem progów baterii) bez interakcji użytkownika.

Aplikacja demonstracyjna sprzedaży detalicznej

Implementacja trybu demonstracyjnego w handlu detalicznym na podstawie właściciela urządzenia 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 systemu i można je pobrać podczas procesu konfiguracji lub udostępniania. Są one przeważnie wdrażane jak tradycyjne aplikacje, z następującymi różnicami:

Interfejsy API w klasie DevicePolicyManager umożliwiają właścicielowi urządzenia (DO) i właścicielowi profilu (PO) egzekwowanie różnych zasad dotyczących urządzeń. Niektóre funkcje DevicePolicyManager mające zastosowanie w trybie demonstracyjnym w handlu detalicznym są wymienione poniżej.

  • Twórz użytkowników i zarządzaj nimi.

  • Uruchom ponownie urządzenie.

  • Ustaw dozwolone pakiety LockTask.

  • Zainstaluj pakiety za pomocą PackageInstaller .

  • Zablokuj możliwość odinstalowania pakietów.

  • Włącz automatyczne aktualizacje systemu. Urządzenia automatycznie pobiorą i zastosują aktualizacje OTA.

  • Wyłącz klawiaturę.

  • Zapobiegaj ustawianiu haseł i odcisków palców.

  • Ustaw dozwolony zestaw ustawień.Globalne , Ustawienia.Bezpieczne i Ustawienia.Ustawienia systemowe .

  • Ustaw politykę uprawnień na PERMISSION_POLICY_AUTO_GRANT , która automatycznie przyznaje wszystkie uprawnienia wykonawcze. Uprawnienia można również nadawać w węższy sposób: pojedyncze pozwolenie na pojedynczą aplikację. Nie dotyczy to uprawnień związanych z aplikacjami, które użytkownicy muszą nadal przyznawać indywidualnie dla każdego użytkownika i dla każdej aplikacji.

  • Ustaw ograniczenia użytkownika dotyczące trybu sprzedaży detalicznej zgodnie z definicją w UserManager w następujący 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

Zaktualizuj film demonstracyjny za pomocą Internetu

Aplikacja RetailDemo w katalogu /packages/apps/RetailDemo umożliwia aktualizację wideo demonstracyjnego, jeśli dostępna jest łączność sieciowa. Adres URL, z którego można pobrać wideo, można skonfigurować, zastępując następującą 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 różnych regionach muszą być używane różne filmy, można skonfigurować różne adresy URL pobierania, korzystając z zasobów ciągów specyficznych dla ustawień regionalnych w pliku res/values-*/strings.xml . Na przykład, jeśli w Stanach Zjednoczonych i Wielkiej Brytanii mają być używane różne filmy, odpowiednie adresy URL pobierania można umieścić w plikach res/values-en-rUS/strings.xml i res/values-en-rGB/strings.xml odpowiednio pokazano w następujący sposób.

  • W pliku res/values-en-rUS/strings.xml:

    <string name="retail_demo_video_download_url">download URL for US video goes here</string>
    
  • W res/values-en-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 wideo na urządzeniu aplikacja RetailDemo sprawdza w tle, czy podany jest adres URL pobierania i czy wideo pod tym adresem jest nowsze niż odtwarzane.

Jeśli tak, aplikacja RetailDemo pobierze i rozpocznie odtwarzanie wideo. Po pobraniu film będzie używany do odtwarzania we wszystkich kolejnych sesjach demonstracyjnych. Żadna z kontroli nie zostanie powtórzona aż do następnego ponownego uruchomienia.

Wytyczne dotyczące filmów demonstracyjnych

Filmy demonstracyjne muszą być w układzie pionowym lub, w przypadku tabletu, w naturalnej orientacji urządzenia i mogą mieć dowolną długość przekraczającą pięć sekund. Treść nie może powodować wypalenia, ponieważ będzie odtwarzana w sposób ciągły podczas wyświetlania.

Więcej informacji znajdziesz w definicjach użytkowników, profili i kont dla programistów Androida , dokumentacji interfejsu API Menedżera zasad urządzeń i przykładowej aplikacji właściciela urządzenia .

Walidacja

CTS nie obejmuje trybu demonstracyjnego w handlu detalicznym, ponieważ jest to funkcja opcjonalna. Testowanie należy przeprowadzić ręcznie lub za pomocą testów jednostkowych dla aplikacji demonstracyjnej.

Sesja demonstracyjna

Konfiguracja sesji demonstracyjnej

Urządzenia demonstracyjne do sprzedaży detalicznej mogą uruchomić się w trybie demonstracyjnym do sprzedaży detalicznej, jeśli są fabrycznie skonfigurowane do trybu demonstracyjnego. Alternatywnie pracownicy sprzedaży detalicznej mogą włączyć tryb sprzedaży detalicznej bezpośrednio z kreatora konfiguracji.

Retail demo mode

Rysunek 2. Tryb demonstracyjny w handlu detalicznym

Wyświetl sesję demonstracyjną

Gdy urządzenie przejdzie w tryb detaliczny, 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 części Implementacja . Domyślnie ten niestandardowy program uruchamiający odtwarza wideo demonstracyjne, dopóki użytkownik nie dotknie ekranu, aby rozpocząć sesję demonstracyjną. W tym momencie niestandardowy program uruchamiający uruchamia program uruchamiający system, a następnie kończy działanie. Producenci OEM mogą zmienić niestandardowy program uruchamiający, aby dodatkowo uruchamiać inną usługę lub działanie przy wyjściu.

Aby zachować integralność trybu detalicznego, blokada klawiatury jest wyłączona, a niektóre działania w Szybkich ustawieniach, które mogłyby niekorzystnie wpłynąć na tryb detaliczny, są również niedozwolone, w tym poniższe.

  • Przełącznik trybu samolotowego.
  • Usuwanie lub modyfikowanie punktów dostępu Wi-Fi (Ustawienia).
  • Zmiana operatora (Ustawienia).
  • Konfiguracja hotspotu (Ustawienia).
  • Przełączanie użytkowników.

Dodatkowo zablokowany jest także dostęp do niektórych ustawień globalnych, które mogą mieć wpływ na tryb sprzedaży detalicznej poprzez wyłączenie następujących opcji:

  • Ustawienia wifi.
  • Opcje konfiguracji sieci komórkowej, zwłaszcza hotspotów.
  • Konfiguracja Bluetooth.
  • Kopia zapasowa i resetowanie, Data i godzina oraz Sieci komórkowe (w ogóle się nie wyświetlają).

Jeśli użytkownik pozostaje bezczynny przez pewien czas (domyślnie 90 sekund), w trybie sprzedaży detalicznej wyświetlane jest systemowe okno dialogowe z monitem o zakończenie sesji lub kontynuowanie. Jeśli użytkownik zdecyduje się wyjść lub jeśli nie będzie odpowiedzi przez pięć sekund, tryb detaliczny usunie bieżącego użytkownika demonstracyjnego, przełączy się na nowego użytkownika demonstracyjnego i ponownie odtworzy oryginalny film. Jeżeli ekran zostanie wyłączony przyciskiem zasilania, po kilku sekundach włączy się automatycznie.

Po wyjściu z sesji demonstracyjnej urządzenia wyciszają się i resetują niektóre ustawienia globalne, w tym następujące:

  • Jasność
  • Automatyczne obracanie
  • Latarka
  • Język
  • Dostępność

Wyjdź z trybu demonstracyjnego sprzedaży detalicznej

Aby wyjść z trybu sprzedaży detalicznej, pracownicy sprzedaży detalicznej muszą upewnić się, że urządzenie demonstracyjne nie jest zarejestrowane w ramach zarządzania urządzeniami, i zresetować urządzenie do ustawień fabrycznych za pomocą programu rozruchowego.