Mode demo promo

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

Meskipun DevicePolicyManager API dapat digunakan pada versi sebelum Android 8.1, pengguna jenis 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 peningkatan platform dan menjelaskan aplikasi demo promo di Android 8.1 dan yang lebih baru.

Perubahan platform

Menetapkan DEVICE_DEMO_MODE

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

Mengaktifkan RetailDemoModeService

Di perangkat yang menerapkan mode demo promo, wizard penyiapan menetapkan setelan global setting Global.DEVICE_DEMO_MODE ke true untuk menunjukkan bahwa perangkat telah memasuki mode retail. Setelah melihat setelan ini, RetailDemoModeService akan membuat pengguna demo dan beralih ke pengguna tersebut saat pengguna 0 dimulai, mengaktifkan peluncur kustom yang ditentukan dalam resource overlay, dan menonaktifkan SUW. Server Sistem dan SystemUI juga menggunakan flag ini untuk mengelola aspek mode retail.

Menetapkan peluncur kustom atau pemutar video

Produsen perangkat dapat menentukan peluncur kustom dengan mengganti resource framework resource 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 promo yang terletak di /packages/apps/RetailDemo adalah peluncur kustom default di Project Open Source Android (AOSP). Aplikasi ini mencari video di partisi perangkat seperti /data/preloads/demo/retail_demo.mp4 dan memutarnya dalam loop. Saat pengguna menyentuh layar, peluncur kustom akan menonaktifkan komponen aktivitasnya, yang menyebabkan peluncur sistem default dimulai.

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

Wizard penyiapan juga mencari video yang disebutkan sebelumnya untuk memberikan kemudahan dalam memasuki mode retail. SUW dapat diubah untuk mencari tanda khusus OEM lainnya yang menunjukkan bahwa mode retail didukung jika video bukan bagian dari demo. Jika ada partisi sistem A/B, partisi sistem B harus berisi video demo di /preloads/demo. Video ini akan disalin ke /data/preloads/demo saat booting pertama.

Menyesuaikan aplikasi yang telah diinstal sebelumnya untuk mode demo promo

Aplikasi yang telah diinstal sebelumnya dapat menyesuaikan pengalaman mereka untuk mode demo promo dengan memanggil UserManager.isDemoUser() API untuk melihat apakah aplikasi diluncurkan di lingkungan demo.

Batasan tertentu ditetapkan di pengguna demo, mirip dengan kebijakan perangkat atau profil terkelola yang mencegah aplikasi dan pengguna melakukan operasi tertentu. Salah satu batasan ini adalah DISALLOW_MODIFY_ACCOUNTS. Dengan batasan ini, AccountManager dan Setelan tidak mengizinkan penambahan akun. Beberapa aplikasi Google bereaksi terhadap batasan ini dan menampilkan pesan error, dan aplikasi lainnya tidak akan meminta akun (seperti YouTube dan Foto). Sebaiknya aplikasi OEM juga memeriksa apakah DISALLOW_MODIFY_ACCOUNTS ditetapkan dan menangani skenario tersebut dengan tepat.

Update sistem

Secara default, saat mode retail diaktifkan, kebijakan perangkat ditetapkan ke update over-the-air (OTA) secara otomatis. Perangkat retail akan mendownload, memulai ulang, dan menginstal update (dengan memperhatikan batas baterai) tanpa interaksi pengguna.

Aplikasi demo promo

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

Aplikasi pemilik perangkat tidak memerlukan hak istimewa yang ditingkatkan atau penginstalan awal pada image sistem dan dapat didownload selama proses penyiapan atau penyediaan. Aplikasi ini sebagian besar diimplementasikan seperti aplikasi tradisional, dengan perbedaan berikut:

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

  • Membuat dan mengelola pengguna.

  • Memulai ulang perangkat.

  • Menetapkan paket yang diizinkan LockTask.

  • Menginstal paket melalui PackageInstaller.

  • Memblokir paket agar tidak di-uninstal.

  • Mengaktifkan update sistem otomatis. Perangkat akan otomatis mendownload dan menerapkan update OTA.

  • Menonaktifkan keyguard.

  • Mencegah penetapan sandi atau sidik jari.

  • Menetapkan kumpulan setelan Settings.Global, Settings.Secure, dan Settings.System yang diizinkan.

  • Menetapkan kebijakan izin ke PERMISSION_POLICY_AUTO_GRANT, yang otomatis memberikan semua izin runtime. Izin juga dapat diberikan secara lebih sempit: satu izin untuk satu aplikasi. Hal ini tidak berlaku untuk izin app-ops, yang masih harus diberikan pengguna berdasarkan per pengguna dan per aplikasi.

  • Menetapkan batasan pengguna yang relevan dengan mode retail seperti yang ditentukan di 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

Memperbarui video demo menggunakan web

Aplikasi RetailDemo di /packages/apps/RetailDemo memiliki kemampuan untuk memperbarui video demo jika ada konektivitas jaringan. URL untuk mendownload 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, URL download yang berbeda dapat dikonfigurasi dengan menggunakan resource string khusus lokalitas di res/values-*/strings.xml. Misalnya, jika video yang berbeda perlu digunakan di Amerika Serikat dan Inggris Raya, URL download yang sesuai dapat ditempatkan di res/values-en-rUS/strings.xml dan res/values-en-rGB/strings.xml, masing-masing, seperti yang ditunjukkan di bawah ini.

  • 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 didownload paling banyak satu kali untuk setiap reboot perangkat. Saat video di perangkat diputar, aplikasi RetailDemo akan memeriksa di latar belakang apakah URL download disediakan dan video di URL tersebut lebih baru daripada video yang sedang diputar.

Jika ya, aplikasi RetailDemo akan mendownload dan mulai memutar video. Setelah didownload, video tersebut akan digunakan untuk diputar di semua sesi demo ke depannya. Tidak ada pemeriksaan yang terjadi lagi hingga setelah reboot berikutnya.

Panduan video demo

Video demonstrasi harus dalam tata letak potret atau, jika tablet, dalam orientasi alami perangkat, dan dapat memiliki panjang berapa pun yang lebih dari lima detik. Konten tidak boleh menyebabkan burn-in, karena akan terus diputar saat ditampilkan.

Lihat definisi developer Android tentang pengguna, profil, dan akun, dokumentasi API Device Policy Manager dan aplikasi Pemilik Perangkat Sampel untuk mengetahui informasi selengkapnya.

Validasi

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

Sesi demo

Penyiapan sesi demo

Perangkat demo promo dapat melakukan booting ke mode demo promo jika dikonfigurasi untuk mode demo dari pabrik. Atau, karyawan retail dapat mengaktifkan mode retail langsung dari wizard penyiapan.

Mode demo retail

Gambar 2. Mode demonstrasi retail

Menampilkan sesi demo

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

Untuk mempertahankan integritas mode retail, keyguard dinonaktifkan dan tindakan tertentu dari Setelan Cepat yang dapat memengaruhi mode retail secara negatif juga tidak diizinkan, termasuk hal berikut.

  • Tombol mode Pesawat.
  • Menghapus atau mengubah titik akses Wi-Fi (Setelan).
  • Mengubah operator (Setelan).
  • Mengonfigurasi hotspot (Setelan).
  • Mengganti pengguna.

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

  • Setelan Wi-Fi.
  • Opsi konfigurasi jaringan seluler, terutama hotspot.
  • Konfigurasi Bluetooth.
  • Cadangkan & Reset, Tanggal & Waktu, dan Jaringan Seluler (tidak muncul sama sekali).

Jika pengguna tidak aktif selama beberapa waktu (90 detik secara default), mode retail akan 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 mengulang video asli. Jika layar dimatikan menggunakan tombol daya, layar akan otomatis menyala kembali setelah beberapa detik.

Setelah keluar dari sesi demo, perangkat akan membisukan diri dan mereset beberapa setelan global, termasuk hal berikut:

  • Kecerahan
  • Rotasi otomatis
  • Senter
  • Bahasa
  • Aksesibilitas

Keluar dari mode demo promo

Untuk keluar dari mode retail, karyawan retail harus memastikan bahwa perangkat demo tidak terdaftar di pengelolaan perangkat dan mereset perangkat ke setelan pabrik dari boot loader.