Perakende demo modu

Android 7.1.1, perakende demo modu için sistem düzeyinde destek sunarak müşterilerin perakende mağazalarında cihazları çalışırken incelemesine olanak tanır. Cihazlar, cihaz sahibinin uygulaması kullanılarak perakende demo için ayarlanır. Böylece cihaz kullanımının yalnızca belirli demo modu uygulamalarıyla sınırlandırılması sağlanır. Son kullanıcılar, mağaza demo cihazlarına kişisel hesap ekleyememelidir. Android 8.1, bu desteği DevicePolicyManager createAndManageUser API'si aracılığıyla demo kullanıcıları oluşturacak şekilde düzenler. Bu sayede, demo cihazda kullanıcı yönetimi ve cihaz politikası yönetimi açısından standart perakende modunda çok daha fazla OEM özelleştirmesi yapılabilir.

DevicePolicyManager API'leri Android 8.1'den önceki sürümlerde kullanılabilse de demo-type kullanıcıları (DevicePolicyManager.MAKE_USER_DEMO) 8.0 ve önceki sürümlerde createAndManageUser API'si ile oluşturulamaz.

Android 8.1 ve sonraki sürümlerde uygulama

Bu bölümde, platform geliştirmeleri vurgulanmakta ve Android 8.1 ile sonraki sürümlerdeki mağaza demo uygulaması açıklanmaktadır.

Platform değişiklikleri

DEVICE_DEMO_MODE'u ayarlayın

Cihaz sahibi tabanlı perakende demo modu uygulayan cihazlar, perakende demo modu için temel hazırlık yapıldığını belirtmek üzere temel hazırlık öncesinde Settings.Global.DEVICE_DEMO_MODE değerini 1 olarak ayarlamalıdır. SystemServer bu işareti, güç profili ve SystemUI gibi perakende moduyla ilgili unsurları yönetmek için kullanır.

Enable RetailDemoModeService

Perakende demo modu uygulayan cihazlarda kurulum sihirbazı, cihazın perakende moduna girdiğini belirtmek için genel bir ayar olan Global.DEVICE_DEMO_MODE değerini true olarak ayarlar. Bu ayar görüldüğünde RetailDemoModeService bir demo kullanıcısı oluşturur ve kullanıcı 0 başlatıldığında bu kullanıcıya geçer, bir yer paylaşımı kaynağında belirtilen özel başlatıcıyı etkinleştirir ve SUW'yi devre dışı bırakır. Sistem, Sunucu ve SystemUI da perakende modunun bazı yönlerini yönetmek için bu işareti kullanır.

Özel başlatıcı veya video oynatıcı ayarlama

Cihaz üreticileri, config.xml dosyasında belirtilen çerçeve kaynağını config_demoModeLauncherComponent aşağıdaki gibi geçersiz kılarak özel bir başlatıcı belirtebilir.

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

/packages/apps/RetailDemo konumundaki perakende demo DemoPlayer uygulaması, Android Açık Kaynak Projesi'ndeki (AOSP) varsayılan özel başlatıcıdır. Uygulama, /data/preloads/demo/retail_demo.mp4 gibi bir cihaz bölümünde video arar ve videoyu döngü halinde oynatır. Kullanıcı ekrana dokunduğunda özel başlatıcı, etkinlik bileşenini devre dışı bırakır. Bu da varsayılan sistem başlatıcısının başlatılmasına neden olur.

Özel başlatıcı, demo olmayan senaryolarda görünmemesi için özel bileşenini varsayılan olarak devre dışı bırakılmış şekilde işaretlemelidir. Demo senaryosunda, SystemServer yeni bir demo oturumu başlatırken belirtilen config_demoModeLauncherComponent özelliğini etkinleştirir.

Kurulum sihirbazı, perakende moduna girme olanağı sunmak için daha önce bahsedilen videoyu da arar. Video, demo kapsamında değilse SUW, perakende modunun desteklendiğine dair başka bir OEM'e özgü işaret arayacak şekilde değiştirilebilir. Sistem A/B bölümleri varsa sistem B bölümü, /preloads/demo konumunda demo videosunu içermelidir. Bu, ilk başlatmada /data/preloads/demo'ya kopyalanır.

Mağaza demo modu için önceden yüklenmiş uygulamaları özelleştirme

Önceden yüklenmiş uygulamalar, UserManager.isDemoUser() API'sini çağırarak uygulamanın demo ortamında başlatılıp başlatılmadığını kontrol edip mağaza demo modu için deneyimlerini özelleştirebilir.

Demo kullanıcısında, uygulamaların ve kullanıcıların belirli işlemleri gerçekleştirmesini engelleyen yönetilen cihaz veya profil politikalarına benzer kısıtlamalar ayarlanır. Bu kısıtlamalardan biri DISALLOW_MODIFY_ACCOUNTS. Bu kısıtlama nedeniyle AccountManager ve Settings hesap eklenmesine izin vermez. Bazı Google uygulamaları bu kısıtlamaya tepki vererek hata mesajı gösterir. Diğerleri ise hesap isteminde bulunmaz (ör. YouTube ve Fotoğraflar). OEM uygulamalarının da DISALLOW_MODIFY_ACCOUNTS ayarının yapılıp yapılmadığını kontrol etmesini ve senaryoyu buna göre ele almasını öneririz.

Sistem güncellemeleri

Varsayılan olarak, perakende modu etkinleştirildiğinde cihaz politikası otomatik olarak kablosuz (OTA) güncelleme olarak ayarlanır. Perakende cihazlar, kullanıcı etkileşimi olmadan güncellemeyi indirir, yeniden başlatır ve yükler (pil eşiklerine uyarak).

Mağaza demo uygulaması

Cihaz sahibi tabanlı mağaza demo modu uygulaması için Device Policy Controller uygulamasının cihaz sahibi olarak ayarlanması gerekir. AOSP'de /packages/apps/RetailDemo konumunda referans bir RetailDemo uygulaması bulunur.

Cihaz sahibi uygulamalarının, sistem görüntüsünde ayrıcalıkların yükseltilmesine veya önceden yüklenmesine gerek yoktur. Bu uygulamalar, kurulum veya hazırlık işlemi sırasında indirilebilir. Çoğunlukla geleneksel uygulamalar gibi uygulanır. Aralarındaki farklar şunlardır:

DevicePolicyManager sınıfındaki API'ler, cihaz sahibi (DO) ve profil sahibinin (PO) çeşitli cihaz politikalarını zorunlu kılmasını sağlar. Mağaza demo modu için geçerli olan bazı DevicePolicyManager işlevleri aşağıda listelenmiştir.

  • Kullanıcı oluşturma ve yönetme

  • Cihazı yeniden başlatın.

  • LockTask'a izin verilen paketleri ayarlayın.

  • PackageInstaller aracılığıyla paketleri yükleyin.

  • Paketlerin kaldırılmasını engelleme

  • Otomatik sistem güncellemelerini etkinleştirin. Cihazlar, OTA güncellemelerini otomatik olarak indirip uygular.

  • Tuş koruyucuyu devre dışı bırakın.

  • Şifre veya parmak izi ayarlanmasını engelleme

  • Settings.Global, Settings.Secure, ve Settings.System ayarlarının izin verilenler listesine eklenmiş bir grubunu ayarlayın.

  • İzin politikasını PERMISSION_POLICY_AUTO_GRANT olarak ayarlayın. Bu ayar, tüm çalışma zamanı izinlerini otomatik olarak verir. İzinler daha dar kapsamlı olarak da verilebilir: Tek bir uygulamaya tek bir izin. Bu durum, kullanıcıların kullanıcı ve uygulama bazında vermeye devam etmesi gereken uygulama işlemleri izinleri için geçerli değildir.

  • UserManager'da tanımlandığı şekilde perakende moduyla ilgili kullanıcı kısıtlamalarını aşağıdaki gibi ayarlayın.

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

Web'i kullanarak demo videosunu güncelleme

/packages/apps/RetailDemo dizinindeki RetailDemo uygulaması, ağ bağlantısı varsa demo videosunu güncelleyebilir. Videoyu indirmek için kullanılan URL, RetailDemo uygulamasında aşağıdaki dize değeri geçersiz kılınarak yapılandırılabilir.

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

Farklı bölgelerde farklı videoların kullanılması gerekiyorsa res/values-*/strings.xml içinde yerel ayara özgü dize kaynakları kullanılarak farklı indirme URL'leri yapılandırılabilir. Örneğin, ABD ve Birleşik Krallık'ta farklı videoların kullanılması gerekiyorsa ilgili indirme URL'leri sırasıyla res/values-en-rUS/strings.xml ve res/values-en-rGB/strings.xml dosyalarına aşağıdaki gibi yerleştirilebilir.

  • res/values-en-rUS/strings.xml dosyasında:

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

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

Bu video, her cihaz yeniden başlatıldığında en fazla bir kez indirilir. Cihazdaki video oynatılırken RetailDemo uygulaması, indirme URL'sinin sağlanıp sağlanmadığını ve URL'deki videonun oynatılan videodan daha yeni olup olmadığını arka planda kontrol eder.

Bu durumda RetailDemo uygulaması videoyu indirir ve oynatmaya başlar. Video indirildikten sonra, bundan sonraki tüm demo oturumlarında oynatmak için kullanılır. Bir sonraki yeniden başlatma işlemine kadar kontroller tekrar yapılmaz.

Demo videosu kuralları

Tanıtım videoları dikey düzende olmalı veya tabletlerde cihazın doğal yönünde olmalı ve beş saniyeden uzun olmalıdır. İçerik, ekranda sürekli oynatılacağından ekran yanmasına neden olmamalıdır.

Kullanıcılar, profiller ve hesaplarla ilgili Android geliştirici tanımları, Device Policy Manager API dokümanları ve örnek cihaz sahibi uygulaması hakkında daha fazla bilgi edinin.

Doğrulama

CTS, isteğe bağlı bir özellik olduğundan perakende demo modunu kapsamaz. Testler, demo uygulaması için manuel olarak veya birim testleriyle yapılmalıdır.

Demo oturumu

Demo oturumunun kurulumu

Mağaza demo cihazları, fabrikada demo modu için yapılandırılmışsa mağaza demo modunda başlatılabilir. Alternatif olarak, perakende çalışanları perakende modunu doğrudan kurulum sihirbazından etkinleştirebilir.

Mağaza demo modu

Şekil 2. Perakende tanıtım modu

Demo oturumunu görüntüleme

Cihaz perakende moduna girdiğinde yeni bir demo kullanıcısına geçer ve Uygulama bölümünde açıklandığı gibi, yer paylaşımı kaynağında belirtilen özel başlatıcıyı otomatik olarak başlatır. Bu özel başlatıcı, varsayılan olarak kullanıcı ekrana dokunup demo kullanıcı oturumu başlatana kadar demo videosunu tekrar tekrar oynatır. Bu sırada özel başlatıcı, sistem başlatıcısını başlatır ve ardından çıkar. OEM'ler, özel başlatıcıyı değiştirerek çıkışta başka bir hizmet veya etkinliği de başlatabilir.

Perakende modunun bütünlüğünü korumak için tuş kilidi devre dışı bırakılır ve perakende modunu olumsuz etkileyebilecek Hızlı Ayarlar'daki belirli işlemler (ör. aşağıdakiler) de engellenir.

  • Uçak modu açma/kapatma düğmesi.
  • Kablosuz erişim noktalarını kaldırma veya değiştirme (Ayarlar).
  • Operatör değiştirme (Ayarlar).
  • Hotspot'u yapılandırma (Ayarlar).
  • Kullanıcı değiştirme

Ayrıca, aşağıdaki ayarlar devre dışı bırakılarak perakende modunu etkileyebilecek bazı genel ayarlara erişim de engellenir:

  • Kablosuz ayarları
  • Hücresel ağ yapılandırma seçenekleri (özellikle kablosuz erişim noktaları).
  • Bluetooth yapılandırması.
  • Yedekleme ve Sıfırlama, Tarih ve Saat ile Mobil Ağlar (hiç gösterilmez).

Kullanıcı bir süre boyunca (varsayılan olarak 90 saniye) işlem yapmazsa perakende modu, kullanıcıya oturumdan çıkmasını veya devam etmesini isteyen bir sistem iletişim kutusu gösterir. Kullanıcı çıkmayı seçerse veya beş saniye boyunca yanıt verilmezse perakende modu mevcut demo kullanıcısını kaldırır, yeni bir demo kullanıcısına geçer ve orijinal videoyu tekrar oynatır. Ekran güç düğmesi kullanılarak kapatılırsa birkaç saniye sonra otomatik olarak tekrar açılır.

Demo oturumundan çıktıktan sonra cihazlar sessize alınır ve aşağıdaki ayarlar da dahil olmak üzere bazı genel ayarlar sıfırlanır:

  • Parlaklık
  • Otomatik döndürme
  • El feneri
  • Dil
  • Erişilebilirlik

Mağaza demo modundan çıkma

Perakende modundan çıkmak için perakende çalışanlarının demo cihazın cihaz yönetimine kaydedilmediğinden emin olması ve cihazı bootloader'dan fabrika ayarlarına sıfırlaması gerekir.