Android 7.1.1 memperkenalkan dukungan tingkat sistem untuk mode demo ritel sehingga pelanggan dapat memeriksa penggunaan perangkat di toko-toko ritel. Perangkat telah 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 Anda di perangkat demo promo. Android 8.1 merevisi dukungan ini untuk membuat pengguna demo melalui Device terafiliasi createAndManageUser Compute Engine API. Hal ini memungkinkan penyesuaian OEM yang jauh lebih besar ke mode ritel standar di persyaratan pengelolaan pengguna, dan pengelolaan kebijakan perangkat pada perangkat demo.
Meskipun DevicePointerException
API dapat digunakan pada versi sebelum Android 8.1,
Pengguna jenis demografi (DevicePolicyManager.MAKE_USER_DEMO
) tidak dapat dibuat
dengan perintah createAndManageUser
API dalam versi 8.0 dan yang lebih lama.
Implementasi di Android 8.1 dan yang lebih baru
Bagian ini menyoroti peningkatan platform dan menjelaskan demo retail aplikasi di Android 8.1 dan yang lebih baru.
Perubahan platform
Setel DEVICE_DEMO_MODE
Perangkat yang menerapkan mode demo retail berbasis pemilik perangkat harus disetel
Settings.Global.DEVICE_DEMO_MODE
hingga 1 sebelum
penyediaan untuk menunjukkan bahwa perangkat sedang disediakan untuk demo retail
mode.
SystemServer
menggunakan tanda ini untuk mengelola aspek mode retail, seperti
UI Sistem.
Mengaktifkan RetailDemoModeService
Dalam perangkat yang menerapkan mode demo retail, wizard penyiapan menyetel
pengaturan
Global.DEVICE_DEMO_MODE
ke true
untuk menunjukkan bahwa perangkat telah memasuki mode retail. Setelah
melihat setelan ini, RetailDemoModeService membuat pengguna demo dan mengalihkannya saat pengguna 0 dimulai, sehingga memungkinkan
peluncur khusus yang ditetapkan dalam sumber daya overlay, dan menonaktifkan SUW. {i>System<i}.
Server dan SystemUI juga menggunakan flag ini untuk mengelola aspek mode retail.
Menyetel peluncur khusus atau pemutar video
Produsen perangkat dapat menentukan peluncur kustom dengan mengganti framework
resource config_demoModeLauncherComponent
yang ditentukan dalam config.xml
seperti berikut ini.
<!-- Component that is the default launcher when Retail Mode is enabled. -->
<string name="config_demoModeLauncherComponent">com.android.retaildemo/.DemoPlayer</string>
Aplikasi demoPlayer retail yang berada di /packages/apps/RetailDemo adalah peluncur khusus default di Proyek Open Source Android (AOSP). Tujuan aplikasi mencari video di partisi perangkat seperti /data/previews/demo/retail_demo.mp4 dan memutarnya secara berulang. Saat pengguna menyentuh layar, peluncur kustom menonaktifkan komponen aktivitasnya, yang menyebabkan peluncur sistem default dijalankan.
Peluncur kustom harus memiliki komponen kustom yang ditandai sebagai dinonaktifkan secara default
agar halaman tersebut tidak muncul
dalam skenario non-demo. Dalam skenario demo, {i>System<i}
Server mengaktifkan config_demoModeLauncherComponent
yang ditentukan saat memulai
sesi demo baru.
Wizard penyiapan juga mencari video yang disebutkan sebelumnya untuk memberikan {i>affordance<i} untuk memasuki mode ritel. SUW dapat dimodifikasi untuk mencari beberapa Tanda khusus OEM bahwa mode retail didukung jika video bukan bagian dari demo. Jika ada partisi A/B sistem, partisi sistem B harus berisi video demo di /previews/demo. Salinan ini akan disalin ke {i>/data/previews/demo<i} pada saat booting pertama.
Menyesuaikan aplikasi pramuat untuk mode demo retail
Aplikasi bawaan dapat menyesuaikan pengalamannya untuk mode demo retail dengan memanggil
UserManager.isDemoUser()
API untuk melihat apakah aplikasi diluncurkan di lingkungan demo.
Pembatasan tertentu ditetapkan dalam pengguna demo, mirip dengan perangkat terkelola atau
kebijakan profil yang mencegah aplikasi dan pengguna melakukan operasi tertentu.
Salah satu batasan tersebut adalah DISALLOW_MODIFY_ACCOUNTS
. Dengan batasan ini, akun AccountManager
dan Setelan
tidak mengizinkan penambahan akun. Beberapa aplikasi Google bereaksi terhadap pembatasan ini
menampilkan pesan error, dan pengguna lain tidak akan meminta login (seperti
YouTube dan Foto). Sebaiknya aplikasi OEM juga memeriksa apakah
DISALLOW_MODIFY_ACCOUNTS
telah ditetapkan dan menangani skenario sebagaimana mestinya.
Update sistem
Secara default, saat mode retail diaktifkan, kebijakan perangkat disetel ke over the air (OTA) (OTA) akan otomatis diperbarui. Perangkat retail akan mendownload, memulai ulang, dan menginstal pembaruan (mematuhi ambang batas baterai) tanpa interaksi pengguna.
Aplikasi demo promo
Penerapan mode demo retail berbasis pemilik perangkat memerlukan Pengontrol Kebijakan Perangkat aplikasi untuk ditetapkan sebagai pemilik perangkat. AOSP berisi aplikasi RetailDemo referensi di /packages/apps/RetailDemo.
Aplikasi pemilik perangkat tidak memerlukan hak istimewa yang ditingkatkan atau pra-penginstalan di image sistem dan dapat didownload selama proses penyiapan atau penyediaan. Sebagian besarnya diterapkan seperti aplikasi tradisional, dengan perbedaan:
Semua aplikasi pemilik perangkat harus memperluas DeviceAdminReceiver , yang berfungsi sebagai token otorisasi untuk semua Perangkat melakukannya Google Cloud Platform. Komponen harus menyimpan
android.permission.BIND_DEVICE_ADMIN
izin, sertakan kebijakan khusus yang diminta sebagai metadata, dan filterandroid.app.action.PROFILE_PROVISIONING_COMPLETE
danandroid.app.action.DEVICE_ADMIN_ENABLED
intent.DeviceDependencies#MAKE_USER_DEMO , yang diatur untuk membuat pengguna berjenis demo khusus, adalah API tersembunyi. Tanda ini memiliki nilai konstanta 0x4.
Kepemilikan perangkat harus ditetapkan hanya melalui peran pengelolaan perangkat atau pengelola ManagedProvisioning .
API di Device disusupi mengaktifkan Pemilik Perangkat (DO) dan Pemilik Profil (PO) untuk menerapkan berbagai jenis perangkat kebijakan izin yang relevan. Beberapa Device disusupi fungsi yang berlaku untuk mode demo promo tercantum sebagai berikut.
Membuat dan mengelola pengguna.
Boot ulang perangkat.
Menyetel paket yang diizinkan LockTask.
Instal paket melalui PackageInstaller.
Blokir paket agar tidak di-uninstal.
Aktifkan update sistem otomatis. Perangkat akan otomatis mendownload dan menerapkan update OTA.
Nonaktifkan keyguard.
Cegah setelan sandi atau sidik jari.
Setel daftar Settings.Global yang diizinkan, Settings.Secure, dan Settings.System setelan.
Setel kebijakan izin ke
PERMISSION_POLICY_AUTO_GRANT
, yang otomatis memberikan semua izin runtime. Izin juga dapat diberikan lebih sempit: satu izin akses ke satu aplikasi. Ini tidak berlaku untuk izin operasi aplikasi, yang harus tetap diberikan pengguna per pengguna, per aplikasi.Tetapkan batasan pengguna yang relevan dengan mode retail seperti yang didefinisikan dalam Pengelola Pengguna 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 mendownload video dapat dikonfigurasi dengan mengganti hal berikut nilai string 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 download 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, maka URL download yang sesuai dapat ditempatkan di res/values-en-rUS/strings.xml dan res/values-en-rGB/strings.xml, secara berurutan, 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 didownload maksimal sekali untuk setiap reboot perangkat. Jika video pada perangkat sedang diputar, aplikasi RetailDemo akan memeriksa di latar belakang jika URL download diberikan dan video di URL lebih baru dari yang dimaksud yang sedang dimainkan.
Jika ya, aplikasi RetailDemo akan didownload dan mulai memutar video. Setelah video didownload, kemudian digunakan untuk diputar di semua sesi demo ke depannya. Tak Satu pun pemeriksaan terjadi lagi sampai setelah {i>reboot <i}berikutnya.
Panduan video demo
Video demo harus dalam tata letak potret atau, jika menggunakan tablet, dalam tampilan tablet orientasi alami, dan dapat berdurasi lebih dari lima detik. Isi tidak boleh menyebabkan burn-in, karena video akan terus diputar saat dipajang.
Lihat Definisi Developer Android pengguna, profil, dan akun, dokumentasi Device Policy Manager API dan aplikasi Contoh Pemilik Perangkat untuk 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 retail jika dikonfigurasi untuk mode demo dari pabrik. Atau, karyawan retail dapat mengaktifkan mode retail langsung dari wizard penyiapan.
Gambar 2. Mode demonstrasi retail
Tampilkan sesi demo
Ketika memasuki mode eceran, perangkat beralih ke pengguna demo baru dan secara otomatis memulai peluncur kustom yang ditetapkan di resource overlay seperti yang dijelaskan dalam Penerapan. Secara {i>default<i}, peluncur khusus ini memutar video demo secara berulang hingga pengguna menyentuh untuk memulai sesi pengguna demo. Pada saat itu, peluncur kustom akan dimulai peluncur sistem dan kemudian keluar. OEM dapat mengubah peluncur kustom untuk meluncurkan layanan atau aktivitas lain saat keluar.
Untuk menjaga integritas mode ritel, {i>keyguard<i} dinonaktifkan dan tindakan tertentu dari Setelan Cepat yang dapat berpengaruh buruk terhadap mode eceran adalah juga tidak diizinkan, termasuk hal berikut.
- Tombol mode pesawat.
- Menghapus atau mengubah titik akses Wi-Fi (Setelan).
- Mengubah operator (Setelan).
- Mengonfigurasi hotspot (Setelan).
- Peralihan pengguna.
Selain itu, akses ke beberapa setelan global juga diblokir yang dapat memengaruhi mode retail dengan menonaktifkan fitur berikut:
- Setelan Wi-Fi.
- Opsi konfigurasi jaringan seluler, terutama hotspot.
- Konfigurasi Bluetooth.
- Pencadangan & Atur Ulang, Tanggal & Waktu, dan Jaringan Seluler (tidak muncul sama sekali).
Jika pengguna tidak ada aktivitas selama jangka waktu tertentu (secara default 90 detik), mode retail menampilkan dialog sistem untuk meminta pengguna keluar dari sesi atau melanjutkan. Jika pengguna memilih keluar atau jika tidak ada respons selama lima detik, ritel menghapus pengguna demo saat ini, mengalihkan ke pengguna demo baru, dan memutar ulang video asli. Jika layar dimatikan menggunakan tombol daya, lampu akan menyala kembali secara otomatis setelah beberapa detik.
Setelah keluar dari sesi demo, perangkat membisukan audionya sendiri dan mereset beberapa deteksi setelan, termasuk berikut ini:
- Kecerahan
- Rotasi otomatis
- Senter
- Bahasa
- Aksesibilitas
Keluar dari mode demo retail
Untuk keluar dari mode retail, karyawan retail harus memastikan bahwa perangkat demo tidak terdaftar di bawah pengelolaan perangkat dan mereset perangkat ke setelan pabrik dari dan Windows 7.