Perakende demo modu

Android 7.1.1, müşterilerin perakende mağazalarında cihazları çalışırken inceleyebilmesi için perakende demo modu için sistem düzeyinde destek sunmuştur. Cihazların yalnızca belirli demo modu uygulamalarıyla sınırlı şekilde kullanılmasını sağlamak için cihaz sahibi uygulaması kullanılarak mağaza demoları için ayarlanır. Son kullanıcılar, perakende satış amaçlı demo cihazlara kişisel hesap ekleyememelidir. Android 8.1, DevicePolicyManager createAndManageUser API'si aracılığıyla demo kullanıcılar oluşturmak için bu desteği yeniden 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 türü kullanıcılar (DevicePolicyManager.MAKE_USER_DEMO), 8.0 ve önceki sürümlerde createAndManageUser API'si kullanılarak oluşturulamaz.

Android 8.1 ve sonraki sürümlerde uygulama

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

Platform değişiklikleri

DEVICE_DEMO_MODE ayarlama

Cihaz sahibine dayalı perakende demo modu uygulayan cihazlar, cihazın perakende demo modu için temel hazırlığı yapıldığını belirtmek üzere temel hazırlıktan önce Settings.Global.DEVICE_DEMO_MODE değerini 1 olarak ayarlamalıdır. SystemServer, perakende modunun güç profili ve SystemUI gibi özelliklerini yönetmek için bu işareti kullanır.

RetailDemoModeService'i etkinleştirme

Perakende demo modu uygulanan cihazlarda kurulum sihirbazı, cihazın perakende moduna girdiğini belirtmek için Global.DEVICE_DEMO_MODE adlı genel ayarı true olarak ayarlar. Bu ayarı gören RetailDemoModeService, bir demo kullanıcı oluşturur ve 0 numaralı kullanıcı başlatıldığında bu kullanıcıya geçer, yer paylaşımı kaynağında belirtilen özel başlatıcıyı etkinleştirir ve SUW'yu devre dışı bırakır. SystemServer ve SystemUI, mağaza modunun bazı özelliklerini yönetmek için de bu işareti kullanır.

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

Cihaz üreticileri, config.xml dosyasında belirtilen çerçeve kaynağı 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 adresinde bulunan DemoPlayer mağaza demo uygulaması, Android Açık Kaynak Projesi'ndeki (AOSP) varsayılan özel başlatıcıdır. Uygulama, cihaz bölümünde /data/preloads/demo/retail_demo.mp4 gibi bir video arar ve videoyu döngü şeklinde 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ının özel bileşeni, demo dışı senaryolarda görünmemesi için varsayılan olarak devre dışı olarak işaretlenmelidir. Demo senaryosundaki Sistem Sunucusu, yeni bir demo oturumu başlatırken belirtilen config_demoModeLauncherComponent öğesini etkinleştirir.

Kurulum sihirbazı, perakende moduna girmek için daha önce bahsedilen videoyu da arar. SUW, video demonun bir parçası değilse perakende modunun desteklendiğini gösteren OEM'ye özgü başka bir işaret arayacak şekilde değiştirilebilir. A/B sistem bölümleri varsa sistem B bölümünde /preloads/demo adresinde demo videosu bulunmalıdır. Bu dosya, ilk açılışta /data/preloads/demo dizinine kopyalanır.

Önceden yüklenmiş uygulamaları perakende demo modu için özelleştirme

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

Demo kullanıcıda, uygulamaların ve kullanıcıların belirli işlemleri yapmasını engelleyen yönetilen cihaz veya profil politikalarına benzer şekilde belirli kısıtlamalar belirlenir. Bu kısıtlamalardan biri DISALLOW_MODIFY_ACCOUNTS. Bu kısıtlamayla AccountManager ve Settings, hesap eklenmesine izin vermez. Bazı Google uygulamaları bu kısıtlamaya tepki verir ve hata mesajı gösterir. Bazıları ise hesap isteğinde bulunmaz (ör. YouTube ve Fotoğraflar). OEM uygulamalarının, DISALLOW_MODIFY_ACCOUNTS değerinin ayarlanıp ayarlanmadığını kontrol etmesini ve senaryoyu buna göre işlemesini öneririz.

Sistem güncellemeleri

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

Mağaza demo uygulaması

Cihaz sahibine dayalı perakende demo modu uygulaması için bir Cihaz Politikası Denetleyici uygulamasının cihaz sahibi olarak ayarlanması gerekir. AOSP, /packages/apps/RetailDemo adresinde referans bir RetailDemo uygulaması uygulaması içerir.

Cihaz sahibi uygulamaları için sistem görüntüsünde yükseltilmiş ayrıcalıklara veya önceden yükleme işlemine gerek yoktur ve bu uygulamalar kurulum veya temel hazırlama işlemi sırasında indirilebilir. Bu uygulamalar genellikle geleneksel uygulamalar gibi uygulanır. Bununla birlikte, aşağıdaki farklılıklar söz konusudur:

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

  • Kullanıcı oluşturabilir ve yönetebilirsiniz.

  • Cihazı yeniden başlatın.

  • LockTask izin verilen paketlerini ayarlayın.

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

  • Paketlerin kaldırılmasını engelleme.

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

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

  • Şifre veya parmak izi ayarlanmasını engelleyin.

  • İzin verilenler listesine Settings.Global, Settings.Secure ve Settings.System ayarları ekleyin.

  • İ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, uygulama işlevleri izinleri için geçerli değildir. Kullanıcıların bu izinleri kullanıcı başına ve uygulama başına vermesi gerekir.

  • Perakende moduyla ilgili kullanıcı kısıtlamalarını UserManager'da tanımlandığı şekilde 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

Demo videosunu web'i kullanarak güncelleme

/packages/apps/RetailDemo adresindeki RetailDemo uygulaması, ağ bağlantısı varsa demo videosunu güncelleyebilir. Videonun indirileceği 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 dosyasında yerel ayara özel 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-tr-rUS/strings.xml dosyasında:

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

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

Bu video, cihaz her yeniden başlatıldığında en fazla bir kez indirilir. Cihazdaki video oynatıldığında 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 indirip oynatmaya başlar. İndirilen video, bundan sonraki tüm demo oturumlarında oynatılmak üzere kullanılır. Kontroller, bir sonraki yeniden başlatma işlemine kadar tekrarlanmaz.

Demo videosu kuralları

Demo videoları dikey düzende veya tablet ise cihazın doğal yönü olmalıdır ve beş saniyeden uzun olabilir. Ekran açıkken sürekli oynatılacağı için içerik, ekranda yanmaya neden olmamalıdır.

Daha fazla bilgi için kullanıcılar, profiller ve hesaplar ile ilgili Android Developer tanımları, Device Policy Manager API dokümanları ve örnek Cihaz Sahibi uygulamasına bakın.

Doğrulama

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

Demo oturumu

Demo oturumu oluşturma

Mağaza demo cihazları, fabrikadan 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.

Perakende demo modu

Şekil 2. Perakende demo modu

Demo oturumunu görüntüleme

Cihaz perakende moduna girdiğinde yeni bir demo kullanıcıya 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ı demo kullanıcı oturumu başlatmak için ekrana dokunana kadar demo videosunu tekrar tekrar oynatır. Bu sırada özel başlatıcı, sistem başlatıcıyı başlatır ve ardından çıkar. OEM'ler, özel başlatıcıyı değiştirerek çıkarken başka bir hizmeti veya etkinliği de başlatabilir.

Perakende modunun bütünlüğünü korumak için klavye kilidi devre dışı bırakılır ve aşağıdakiler de dahil olmak üzere Perakende modunu olumsuz yönde etkileyebilecek belirli Hızlı Ayarlar işlemlerine de izin verilmez.

  • 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ğıdakiler devre dışı bırakılarak perakende modunu etkileyebilecek bazı genel ayarlara erişim de engellenir:

  • Kablosuz ağ ayarları.
  • Hücresel ağ yapılandırma seçenekleri (özellikle hotspot'lar)
  • Bluetooth yapılandırması.
  • Yedekleme ve Sıfırlama, Tarih ve Saat ve Mobil Ağlar (hiç görünmezler).

Kullanıcı bir süre boyunca (varsayılan olarak 90 saniye) boşta kalırsa perakende modu, kullanıcıdan 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 gelmezse perakende modu mevcut demo kullanıcıyı kaldırır, yeni bir demo kullanıcıya geçer ve orijinal videoyu tekrar döngüde oynatır. Ekran, güç düğmesi kullanılarak kapatılırsa birkaç saniye sonra otomatik olarak tekrar açılır.

Cihazlar, demo oturumundan çıktıktan sonra seslerini kapatır ve aşağıdakiler de dahil olmak üzere bazı genel ayarları sıfırlar:

  • 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önetimi altında kayıtlı olmadığından emin olması ve cihazı bootloader'dan fabrika ayarlarına sıfırlaması gerekir.