Mode demo ritel

Android 7.1.1 memperkenalkan dukungan tingkat sistem untuk mode demo ritel sehingga pelanggan dapat memeriksa perangkat yang sedang beraksi di toko ritel. Perangkat disiapkan untuk demo ritel menggunakan aplikasi pemilik perangkat untuk memastikan bahwa penggunaan perangkat dibatasi hanya untuk aplikasi mode demo tertentu. Pengguna akhir tidak boleh menambahkan akun pribadi di perangkat demo ritel. Android 8.1 merevisi dukungan ini untuk membuat pengguna demo melalui API createAndManageUser DevicePolicyManager. Hal ini memungkinkan penyesuaian OEM yang jauh lebih besar ke mode ritel standar dalam hal manajemen pengguna dan manajemen kebijakan perangkat pada perangkat demo.

Meskipun DevicePolicyManager API dapat digunakan pada versi sebelum Android 8.1, pengguna tipe demo ( DevicePolicyManager.MAKE_USER_DEMO ) tidak dapat dibuat dengan createAndManageUser API di versi 8.0 dan yang lebih lama.

Implementasi di Android 8.1 dan yang lebih baru

Bagian ini menyoroti penyempurnaan platform dan menjelaskan aplikasi demo retail di Android 8.1 dan yang lebih baru.

Perubahan platform

Setel DEVICE_DEMO_MODE

Perangkat yang menerapkan mode demo ritel berbasis pemilik perangkat harus menyetel Settings.Global.DEVICE_DEMO_MODE ke 1 sebelum penyediaan untuk menunjukkan bahwa perangkat sedang disediakan untuk mode demo ritel. SystemServer menggunakan tanda ini untuk mengelola aspek mode ritel, seperti profil daya dan SystemUI.

Aktifkan RetailDemoModeService

Pada perangkat yang menerapkan mode demo ritel, wizard pengaturan menetapkan pengaturan global Global.DEVICE_DEMO_MODE ke true untuk menunjukkan bahwa perangkat telah memasuki mode ritel. Setelah melihat pengaturan ini, RetailDemoModeService membuat pengguna demo dan beralih ke pengguna tersebut ketika pengguna 0 dimulai, mengaktifkan peluncur khusus yang ditentukan dalam sumber daya overlay, dan menonaktifkan SUW. Server Sistem dan SystemUI juga menggunakan tanda ini untuk mengelola aspek mode ritel.

Setel peluncur khusus atau pemutar video

Produsen perangkat dapat menentukan peluncur khusus dengan mengganti sumber daya kerangka kerja config_demoModeLauncherComponent yang ditentukan dalam file config.xml sebagai berikut.

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

Aplikasi DemoPlayer demo ritel yang terletak di /packages/apps/RetailDemo adalah peluncur khusus default di Proyek Sumber Terbuka Android (AOSP). Aplikasi mencari video di partisi perangkat seperti /data/preloads/demo/retail_demo.mp4 dan memutarnya dalam satu lingkaran. Saat pengguna menyentuh layar, peluncur khusus menonaktifkan komponen aktivitasnya, yang menyebabkan peluncur sistem default dimulai.

Peluncur khusus harus memiliki komponen khusus yang ditandai sebagai dinonaktifkan secara default sehingga tidak muncul dalam skenario non-demo. Dalam skenario demo, Server Sistem mengaktifkan config_demoModeLauncherComponent yang ditentukan saat memulai sesi demo baru.

Wizard pengaturan juga mencari video yang disebutkan sebelumnya untuk memberikan kemampuan untuk memasuki mode ritel. SUW dapat dimodifikasi untuk mencari tanda khusus OEM lainnya bahwa mode ritel didukung jika video tersebut bukan bagian dari demo. Jika terdapat partisi sistem A/B, partisi sistem B harus berisi video demo di /preloads/demo. Ini disalin ke /data/preloads/demo pada boot pertama.

Sesuaikan aplikasi yang dimuat sebelumnya untuk mode demo ritel

Aplikasi yang dimuat sebelumnya dapat menyesuaikan pengalamannya untuk mode demo ritel dengan memanggil API UserManager.isDemoUser() untuk melihat apakah aplikasi diluncurkan di lingkungan demo.

Pembatasan tertentu ditetapkan di pengguna demo, serupa dengan kebijakan perangkat atau profil terkelola yang mencegah aplikasi dan pengguna melakukan operasi tertentu. Salah satu batasan tersebut adalah DISALLOW_MODIFY_ACCOUNTS . Dengan pembatasan ini, AccountManager dan Pengaturan tidak mengizinkan penambahan akun. Beberapa aplikasi Google bereaksi terhadap pembatasan ini dan menampilkan pesan kesalahan, dan aplikasi lainnya tidak meminta akun (seperti YouTube dan Foto). Kami menyarankan agar aplikasi OEM juga memeriksa apakah DISALLOW_MODIFY_ACCOUNTS diatur dan menangani skenario yang sesuai.

Pembaruan sistem

Secara default, ketika mode ritel diaktifkan, kebijakan perangkat diatur ke pembaruan over-the-air (OTA) secara otomatis. Perangkat ritel akan mengunduh, melakukan boot ulang, dan menginstal pembaruan (dengan memperhatikan ambang batas baterai) tanpa interaksi pengguna.

Aplikasi demo ritel

Penerapan mode demo ritel berbasis pemilik perangkat memerlukan aplikasi Pengontrol Kebijakan Perangkat untuk ditetapkan sebagai pemilik perangkat. AOSP berisi referensi implementasi aplikasi RetailDemo di /packages/apps/RetailDemo .

Aplikasi pemilik perangkat tidak memerlukan hak istimewa yang lebih tinggi atau pra-instalasi pada image sistem dan dapat diunduh selama proses penyiapan atau penyediaan. Sebagian besar diterapkan seperti aplikasi tradisional, dengan perbedaan berikut:

API di kelas DevicePolicyManager mengaktifkan Pemilik Perangkat (DO) dan Pemilik Profil (PO) untuk menerapkan berbagai kebijakan perangkat. Beberapa fungsi DevicePolicyManager yang berlaku untuk mode demo ritel tercantum sebagai berikut.

  • Membuat dan mengelola pengguna.

  • Nyalakan ulang perangkat.

  • Setel paket yang diizinkan LockTask.

  • Instal paket melalui PackageInstaller .

  • Blokir paket agar tidak di-uninstall.

  • Aktifkan pembaruan sistem otomatis. Perangkat akan secara otomatis mengunduh dan menerapkan pembaruan OTA.

  • Nonaktifkan pengaman tombol.

  • Cegah pengaturan kata sandi atau sidik jari.

  • Tetapkan kumpulan pengaturan Settings.Global , Settings.Secure , dan Settings.System yang diizinkan.

  • Tetapkan kebijakan izin ke PERMISSION_POLICY_AUTO_GRANT , yang secara otomatis memberikan semua izin waktu proses. Izin juga dapat diberikan secara lebih sempit: satu izin untuk satu aplikasi. Hal ini tidak berlaku untuk izin pengoperasian aplikasi, yang masih harus diberikan oleh pengguna per pengguna, per aplikasi.

  • Tetapkan batasan pengguna yang relevan dengan mode ritel seperti yang ditentukan dalam UserManager sebagai berikut.

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

Perbarui video demo menggunakan web

Aplikasi RetailDemo di /packages/apps/RetailDemo memiliki kemampuan untuk memperbarui video demo jika ada konektivitas jaringan. URL untuk mengunduh video dapat dikonfigurasi dengan mengganti nilai string berikut di aplikasi RetailDemo.

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

Jika video yang berbeda perlu digunakan di wilayah yang berbeda, maka URL unduhan yang berbeda dapat dikonfigurasi dengan menggunakan sumber daya string khusus lokal di res/values-*/strings.xml . Misalnya, jika video yang berbeda perlu digunakan di Amerika Serikat dan Inggris Raya, maka URL unduhan yang sesuai dapat ditempatkan di res/values-en-rUS/strings.xml dan res/values-en-rGB/strings.xml , masing-masing, ditampilkan sebagai berikut.

  • Di res/values-en-rUS/strings.xml:

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

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

Video ini diunduh paling banyak satu kali untuk setiap reboot perangkat. Saat video di perangkat diputar, aplikasi RetailDemo memeriksa di latar belakang apakah URL unduhan disediakan dan video di URL tersebut lebih baru daripada yang sedang diputar.

Jika demikian, aplikasi RetailDemo akan mengunduh dan mulai memutar video. Setelah video diunduh, video tersebut digunakan untuk diputar di semua sesi demo selanjutnya. Tidak ada pemeriksaan yang terjadi lagi hingga reboot berikutnya.

Pedoman video demo

Video demonstrasi harus dalam tata letak potret atau, jika tablet, dalam orientasi alami perangkat, dan berdurasi lebih dari lima detik. Konten tidak boleh mengakibatkan burn-in, karena konten akan diputar terus-menerus saat dipajang.

Lihat definisi Pengguna, profil, dan akun Pengembang Android , dokumentasi API Pengelola Kebijakan Perangkat , dan Contoh aplikasi Pemilik Perangkat untuk informasi selengkapnya.

Validasi

CTS tidak mencakup mode demo ritel karena merupakan fitur opsional. Pengujian harus dilakukan secara manual atau dengan pengujian unit untuk aplikasi demo.

Sesi demo

Pengaturan sesi demo

Perangkat demo ritel dapat melakukan booting ke mode demo ritel jika dikonfigurasi untuk mode demo dari pabrik. Alternatifnya, karyawan ritel dapat mengaktifkan mode ritel langsung dari wizard pengaturan.

Retail demo mode

Gambar 2. Mode demonstrasi ritel

Tampilkan sesi demo

Saat perangkat memasuki mode ritel, perangkat beralih ke pengguna demo baru dan secara otomatis memulai peluncur khusus yang ditentukan dalam sumber daya overlay seperti yang dijelaskan dalam Implementasi . Secara default, peluncur khusus ini memutar video demo berulang kali hingga pengguna menyentuh layar untuk memulai sesi pengguna demo. Pada saat itu, peluncur khusus memulai peluncur sistem dan kemudian keluar. OEM dapat mengubah peluncur khusus untuk meluncurkan layanan atau aktivitas lain saat keluar.

Untuk menjaga integritas mode ritel, pengaman tombol dinonaktifkan dan tindakan tertentu dari Pengaturan Cepat yang dapat berdampak buruk pada mode ritel juga tidak diizinkan, termasuk yang berikut ini.

  • Pengalih mode pesawat.
  • Menghapus atau mengubah titik akses Wi-Fi (Pengaturan).
  • Mengubah operator (Pengaturan).
  • Mengonfigurasi hotspot (Pengaturan).
  • Peralihan pengguna.

Selain itu, akses juga diblokir ke beberapa pengaturan global yang dapat memengaruhi mode ritel dengan menonaktifkan hal berikut:

  • Pengaturan Wi-Fi.
  • Opsi konfigurasi jaringan seluler, khususnya hotspot.
  • Konfigurasi Bluetooth.
  • Cadangkan & Setel Ulang, Tanggal & Waktu, dan Jaringan Seluler (tidak muncul sama sekali).

Jika pengguna menganggur selama jangka waktu tertentu (90 detik secara default), mode ritel menampilkan dialog sistem untuk meminta pengguna keluar dari sesi atau melanjutkan. Jika pengguna memilih untuk keluar atau jika tidak ada respons selama lima detik, mode retail akan menghapus pengguna demo saat ini, beralih ke pengguna demo baru, dan mengulangi video asli lagi. Jika layar dimatikan menggunakan tombol daya, layar akan menyala kembali secara otomatis setelah beberapa detik.

Setelah keluar dari sesi demo, perangkat akan membisukan suaranya sendiri dan menyetel ulang beberapa setelan global, termasuk yang berikut:

  • Kecerahan
  • Rotasi otomatis
  • Senter
  • Bahasa
  • Aksesibilitas

Keluar dari mode demo ritel

Untuk keluar dari mode ritel, karyawan ritel harus memastikan bahwa perangkat demo tidak terdaftar di bawah manajemen perangkat dan mengembalikan perangkat ke setelan pabrik dari boot loader.