Mağaza demo modu

Android 7.1.1'de, müşterilerin cihazları perakende satış mağazalarında çalışırken inceleyebilmeleri için perakende satış demo modu için sistem düzeyinde destek kullanıma sunuldu. Cihazlar, perakende demo için bir cihaz sahibi uygulaması kullanılarak ayarlanır. Bu uygulamanın amacı, cihaz kullanımının yalnızca belirli demo modundaki uygulamalarla kısıtlanmasını sağlamaktır. Son kullanıcılar, mağaza demo cihazına kişisel hesap eklememelidir. 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, demo cihazında kullanıcı yönetimi ve cihaz politikası yönetimi açısından standart perakende modunda OEM'nin çok daha fazla özelleştirilmesini sağlar.

DevicePolicyManager API'leri Android 8.1'den önceki sürümlerde kullanılabilse de 8.0 ve önceki sürümlerde demo türü kullanıcılar (DevicePolicyManager.MAKE_USER_DEMO) createAndManageUser API ile 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 özelliğini ayarla

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'e ayarlamalıdır. SystemServer, perakende modunun güç profili ve SystemUI gibi özelliklerini yönetmek için bu işareti kullanır.

RetailDemoModeService'i etkinleştir

Mağaza demo modu uygulanan cihazlarda kurulum sihirbazı, cihazın mağaza moduna girdiğini belirtmek için Global.DEVICE_DEMO_MODE genel ayarını 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 mağaza 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 bunu bir döngüde 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, demo dışı senaryolarda gösterilmemesi için özel bileşeninin varsayılan olarak devre dışı olarak işaretlenmiş olması gerekir. Demo senaryosundaki Sistem Sunucusu, yeni bir demo oturumu başlatırken belirtilen config_demoModeLauncherComponent öğesini etkinleştirir.

Kurulum sihirbazı, perakende moduna girme imkanı sunmak 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. Sistem A/B bölümleri varsa sistem B bölümü, /preloads/demo konumundaki demo videoyu içermelidir. Bu dosya, ilk açılışta /data/preloads/demo dizinine kopyalanır.

Önceden yüklenmiş uygulamaları mağaza 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'sini ç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 uygulayarak bir hata mesajı gösterirken bazıları da hesap istemez (ör. YouTube ve Fotoğraflar). OEM uygulamalarının da DISALLOW_MODIFY_ACCOUNTS adlı çocuğun 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ı kablosuz olarak (OTA) otomatik olarak güncellenir. Perakende cihazları, kullanıcı etkileşimi olmadan güncellemeyi indirir, yeniden başlatır ve yükler (pil eşiklerine uygun şekilde).

Mağaza demo uygulaması

Cihaz sahibi tabanlı perakende demo modunun uygulanması için bir Cihaz Politikası Denetleyicisi uygulamasının cihaz sahibi olarak ayarlanması gerekir. AOSP, /packages/apps/RetailDemo'da referans RetailDemo uygulaması uygulaması içerir.

Cihaz sahibi uygulamaları için yükseltilmiş ayrıcalıklara veya sistem görüntüsüne önceden yükleme yapılmasına gerek yoktur. Bu uygulamalar, kurulum veya temel hazırlama işlemi sırasında indirilebilir. Bu uygulamalar genellikle geleneksel uygulamalar gibi uygulanır ancak aşağıdaki farklılıklar vardır:

DevicePolicyManager sınıfındaki API'ler, çeşitli cihaz politikalarını zorunlu kılmak için Cihaz Sahibi (DO) ve Profil Sahibi (PO) özelliklerini etkinleştirir. 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 paketleri ayarlayın.

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

  • Paketlerin kaldırılmasını engelle

  • 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 eklenmiş Settings.Global, Settings.Secure ve Settings.System ayarlarını belirleyin.

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

  • UserManager'da tanımlandığı gibi 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 videoyu güncelleyin

/packages/apps/RetailDemo'daki RetailDemo uygulaması, ağ bağlantısı varsa demo videoyu 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ı videoların farklı bölgelerde kullanılması gerekiyorsa res/values-*/strings.xml dosyasındaki 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ılırken RetailDemo uygulaması arka planda indirme URL'sinin sağlanıp sağlanmadığını ve URL'deki videonun oynatılan videodan daha yeni olup olmadığını kontrol eder.

Bu durumda RetailDemo uygulaması videoyu indirir ve oynatmaya başlar. Video indirildikten sonra, daha sonra tüm demo oturumlarında oynatılmak için kullanılır. Kontrollerin hiçbiri bir sonraki yeniden başlatmaya kadar tekrar olmaz.

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 mağaza demo modunu kapsamaz. Testler, manuel olarak veya demo uygulaması için birim testleriyle yapılmalıdır.

Demo oturum

Demo oturumu kurulumu

Perakende demo cihazları, fabrikada demo modu için yapılandırıldıysa 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. Mağaza tanıtım modu

Görüntülü reklam demo oturumu

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şımlı kaynakta belirtilen özel başlatıcıyı otomatik olarak başlatır. Varsayılan olarak, bu özel başlatıcı, kullanıcı demo kullanıcı oturumu başlatmak için ekrana dokunana kadar demo videoyu 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 tuş koruyucu devre dışı bırakılır ve perakende modunu olumsuz şekilde etkileyebilecek bazı Hızlı Ayarlar işlemlerine de izin verilmez. Bunlara aşağıdakiler dahildir.

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

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

Kullanıcı bir süre (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 alınmazsa perakende modu, mevcut demo kullanıcısını kaldırır, yeni bir demo kullanıcısına geçiş yapar ve orijinal videoyu tekrar döngüye alı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 çık

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.