Perakende demo modu

Android 7.1.1, müşterilerin perakende mağazalardaki cihazları çalışırken inceleyebilmesi için perakende demo modu için sistem düzeyinde destek sağladı. Cihaz kullanımının yalnızca belirli demo modu uygulamalarıyla sınırlı olmasını sağlamak için cihazlar, bir cihaz sahibi uygulaması kullanılarak perakende demo için ayarlanır. Son kullanıcılar perakende demo cihazına 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 revize ediyor. Bu, demo cihazında kullanıcı yönetimi ve cihaz politikası yönetimi açısından standart perakende moduna göre çok daha fazla OEM özelleştirmesine olanak tanır.

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

Cihaz sahibi tabanlı perakende demo modunu uygulayan cihazların, cihazın perakende demo modu için hazırlandığını belirtmek üzere temel hazırlık öncesinde Settings.Global.DEVICE_DEMO_MODE değerini 1 olarak ayarlaması gerekir. SystemServer bu bayrağı, güç profili ve SystemUI gibi perakende modunun özelliklerini yönetmek için kullanır.

RetailDemoModeService'i etkinleştirin

Perakende demo modunu uygulayan cihazlarda kurulum sihirbazı, cihazın perakende moduna girdiğini belirtmek için Global.DEVICE_DEMO_MODE genel ayarını true olarak ayarlar. Bu ayarın görülmesi üzerine RetailDemoModeService bir demo kullanıcısı oluşturur ve kullanıcı 0 başlatıldığında buna geçiş yapar, bir yer paylaşımı kaynağında belirtilen özel başlatıcıyı etkinleştirir ve SUW'yi devre dışı bırakır. Sistem Sunucusu ve SystemUI da perakende modunun özelliklerini yönetmek için bu bayrağı kullanır.

Özel başlatıcıyı veya video oynatıcıyı ayarlayın

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

<!-- 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 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 bir video arar ve onu bir döngüde oynatır. Kullanıcı ekrana dokunduğunda özel başlatıcı etkinlik bileşenini devre dışı bırakır ve bu da varsayılan sistem başlatıcının başlatılmasına neden olur.

Özel başlatıcının, demo dışı senaryolarda görünmemesi için özel bileşeninin varsayılan olarak devre dışı olarak işaretlenmiş olması gerekir. Demo senaryosunda, Sistem Sunucusu yeni bir demo oturumu başlatırken belirtilen config_demoModeLauncherComponent etkinleştirir.

Kurulum sihirbazı ayrıca perakende moduna girme olanağı sağlamak için daha önce bahsedilen videoyu da arar. SUW, videonun demonun bir parçası olmaması durumunda perakende modunun desteklendiğini gösteren OEM'e özgü başka bir işaret aramak üzere değiştirilebilir. Sistem A/B bölümleri varsa, sistem B bölümünün /preloads/demo konumunda demo videosunu içermesi gerekir. Bu, ilk açılışta /data/preloads/demo'ya kopyalanır.

Perakende demo modu için önceden yüklenmiş uygulamaları özelleştirin

Önceden yüklenmiş uygulamalar, uygulamanın bir demo ortamında başlatılıp başlatılmadığını görmek için UserManager.isDemoUser() API'sini çağırarak perakende demo modu 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 şekilde belirli kısıtlamalar ayarlanır. Bu kısıtlamalardan biri DISALLOW_MODIFY_ACCOUNTS . Bu kısıtlamayla Hesap Yöneticisi ve Ayarlar hesap eklenmesine izin vermez. Bazı Google uygulamaları bu kısıtlamaya tepki verir ve bir hata mesajı görüntüler, bazıları ise (YouTube ve Fotoğraflar gibi) bir hesap istemez. OEM uygulamalarının ayrıca DISALLOW_MODIFY_ACCOUNTS 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 (OTA) güncellemeye ayarlıdır. Perakende cihazlar, kullanıcı etkileşimi olmadan güncellemeyi indirecek, yeniden başlatacak ve yükleyecektir (pil eşik değerlerine saygı göstererek).

Perakende demo uygulaması

Cihaz sahibi tabanlı perakende demo modu uygulaması, cihaz sahibi olarak bir Device Policy Controller uygulamasının ayarlanmasını gerektirir. AOSP, /packages/apps/RetailDemo içinde bir referans RetailDemo uygulaması uygulaması içerir.

Cihaz sahibi uygulamalarının sistem görüntüsünde yükseltilmiş ayrıcalıklara veya ön kuruluma ihtiyacı yoktur ve kurulum veya temel hazırlık işlemi sırasında indirilebilir. Aşağıdaki farklarla çoğunlukla geleneksel uygulamalar gibi uygulanırlar:

DevicePolicyManager sınıfındaki API'ler, Cihaz Sahibinin (DO) ve Profil Sahibinin (PO) çeşitli cihaz politikalarını uygulamasını sağlar. Perakende demo modu için geçerli DevicePolicyManager işlevlerinden bazıları aşağıda listelenmiştir.

  • Kullanıcıları oluşturun ve yönetin.

  • Cihazı yeniden başlat.

  • LockTask'ın izin verdiği paketleri ayarlayın.

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

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

  • Otomatik sistem güncellemelerini etkinleştirin. Cihazlar OTA güncellemelerini otomatik olarak indirip uygulayacaktır.

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

  • Parola veya parmak izi ayarlamayı önleyin.

  • İzin verilenler listesine eklenen Settings.Global , Settings.Secure ve Settings.System ayarlarını ayarlayın.

  • İzin politikasını, tüm çalışma zamanı izinlerini otomatik olarak veren PERMISSION_POLICY_AUTO_GRANT olarak ayarlayın. İzinler daha dar kapsamlı olarak da verilebilir: tek bir uygulamaya tek bir izin. Bu, kullanıcıların yine de kullanıcı ve uygulama bazında vermesi 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üncelleyin

/packages/apps/RetailDemo içindeki RetailDemo uygulaması, ağ bağlantısı varsa demo videosunu güncelleme özelliğine sahiptir. 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ındaki yerel ayara özgü dize kaynakları kullanılarak farklı indirme URL'leri yapılandırılabilir. Örneğin, Amerika Birleşik Devletleri ve Büyük Britanya'da farklı videoların kullanılması gerekiyorsa ilgili indirme URL'leri res/values-en-rUS/strings.xml ve res/values-en-rGB/strings.xml dosyalarına yerleştirilebilir. sırasıyla aşağıdaki şekilde gösterilmiştir.

  • 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, cihazın her yeniden başlatılması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ılandan daha yeni olup olmadığını kontrol eder.

Öyleyse RetailDemo uygulaması videoyu indirir ve oynatmaya başlar. Video indirildikten sonra, bundan sonraki tüm demo oturumlarında oynatılmak için kullanılır. Bir sonraki yeniden başlatmaya kadar kontrollerin hiçbiri tekrarlanmıyor.

Demo video yönergeleri

Gösterim videoları dikey düzende veya tablet ise cihazın doğal yönünde olmalıdır ve beş saniyeden uzun herhangi bir uzunlukta olabilir. İçerik, ekrandayken sürekli oynatılacağı için yanmaya neden olmamalıdır.

Daha fazla bilgi için Android Geliştirici kullanıcı, profil ve hesap tanımlarına , Device Policy Manager API belgelerine ve Örnek Cihaz Sahibi uygulamasına bakın.

Doğrulama

CTS, isteğe bağlı bir özellik olduğundan perakende demo modunu kapsamaz. Test, demo uygulaması için manuel olarak veya birim testleriyle gerçekleştirilmelidir.

Demo oturumu

Demo oturumunun kurulumu

Perakende demo cihazları, fabrikada demo modu için yapılandırılmışsa perakende demo modunda önyüklenebilir. Alternatif olarak perakende çalışanları perakende modunu doğrudan kurulum sihirbazından etkinleştirebilir.

Retail demo mode

Şekil 2. Perakende tanıtım modu

Demo oturumunu görüntüle

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. Varsayılan olarak bu özel başlatıcı, kullanıcı bir 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, çıkışta ek olarak başka bir hizmet veya etkinlik başlatmak için özel başlatıcıyı değiştirebilir.

Perakende modunun bütünlüğünü korumak için tuş kilidi devre dışı bırakılır ve Hızlı Ayarlar'dan perakende modunu olumsuz etkileyebilecek belirli işlemlere de izin verilmez. Bunlara aşağıdakiler dahildir.

  • Uçak modu geçişi.
  • Wi-Fi erişim noktalarını kaldırma veya değiştirme (Ayarlar).
  • Taşıyıcıyı değiştirme (Ayarlar).
  • Erişim noktasını 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 bağlantı ayarları.
  • Hücresel ağ yapılandırma seçenekleri, özellikle sıcak noktalar.
  • Bluetooth yapılandırması.
  • Yedekle ve Sıfırla, Tarih ve Saat ve Mobil Ağlar (hiç görünmüyorlar).

Kullanıcı belirli bir süre boşta kalırsa (varsayılan olarak 90 saniye), perakende modu kullanıcıdan oturumdan çıkmasını veya devam etmesini isteyen bir sistem iletişim kutusu görüntüler. Kullanıcı çıkmayı seçerse veya beş saniye boyunca yanıt gelmezse perakende modu mevcut demo kullanıcısını kaldırır, yeni bir demo kullanıcısına geçer ve orijinal videoda tekrar döngüye girer. Ekran güç düğmesi kullanılarak kapatılırsa birkaç saniye sonra otomatik olarak tekrar açılır.

Bir demo oturumundan çıktıktan sonra cihazlar kendilerini sessize alır ve aşağıdakiler de dahil olmak üzere bazı genel ayarları sıfırlar:

  • Parlaklık
  • Otomatik döndürme
  • El feneri
  • Dil
  • Ulaşılabilirlik

Perakende demo modundan çık

Perakende satış modundan çıkmak için perakende çalışanlarının demo cihazının cihaz yönetimi altında kayıtlı olmadığından emin olması ve cihazı önyükleyiciden fabrika ayarlarına sıfırlaması gerekir.