Android 7.1.1 針對零售商展示模式導入系統層級支援,讓 客戶可以檢視零售商店的裝置運作情形。裝置已設定完成 透過裝置擁有者應用程式啟用零售商展示模式 僅適用於特定展示模式的應用程式使用者無法新增 個人帳戶。Android 8.1 修訂這項支援功能 作 示範使用者透過 DevicePolicyManager createAndManageUser 也能使用 Google Cloud CLI 或 Compute Engine API這樣就能針對 OEM 標準,在標準零售模式中新增 使用者管理條款及裝置政策管理
DevicePolicyManager
API 可用於 Android 8.1、
無法建立客層類型使用者 (DevicePolicyManager.MAKE_USER_DEMO
)
立即呼叫 createAndManageUser
API。
在 Android 8.1 以上版本中實作
本節重點介紹平台強化功能,並說明零售商展示模式 應用程式。
平台異動
設定 DEVICE_DEMO_MODE
如果裝置要導入以裝置擁有者為基礎的零售商展示模式,就必須設定
Settings.Global.DEVICE_DEMO_MODE
到 1,再
佈建,表示裝置目前為零售商展示模式佈建
模式。
SystemServer
系統會使用這個旗標來管理零售模式的各個層面,例如電源設定檔和
SystemUI。
啟用 RetailDemoModeService
在實作零售商展示模式的裝置中,設定精靈會設定全域通用的
設定
將 Global.DEVICE_DEMO_MODE
設為 true
,表示裝置已進入零售模式。發生
就會看到這項設定,RetailDemoModeService 會建立示範使用者,並在使用者 0 啟動時切換至示範使用者,並啟用
疊加層資源中指定的自訂啟動器,並停用 SUW。系統
Server 和 SystemUI 也使用這個標記管理零售模式的各個層面。
設定自訂啟動器或影片播放器
裝置製造商可以透過覆寫架構來指定自訂啟動器
在 config.xml 中指定的資源 config_demoModeLauncherComponent
如下所示。
<!-- Component that is the default launcher when Retail Mode is enabled. -->
<string name="config_demoModeLauncherComponent">com.android.retaildemo/.DemoPlayer</string>
展示版 DemoPlayer 應用程式 /packages/apps/RetailDemo 是 Android 開放原始碼計畫 (AOSP) 中的預設自訂啟動器。 應用程式會在裝置分區 (例如 /data/preloads/demo/retail_demo.mp4) 中尋找影片 並循環播放使用者輕觸螢幕時,自訂啟動器 停用其活動元件,導致預設系統啟動器 啟動。
自訂啟動器的自訂元件必須標示為停用
不會出現在非客層中在此示範情境中
伺服器啟動時,會啟用指定的 config_demoModeLauncherComponent
設定精靈也會尋找先前提到的影片 可以享有進入零售模式的優勢您可以修改 SUW 來尋找其他 如果影片不包含影片,就表示支援零售模式 (OEM) 專屬標示 示範。如果有系統 A/B 分區,則系統 B 分區必須 包含網址為 /preloads/demo 的示範影片。系統會將這些資料複製到 /data/preloads/demo 及記錄。
自訂適用於零售商展示模式的預先載入應用程式
預先載入的應用程式可以藉由呼叫
UserManager.isDemoUser()
,確認應用程式是否已在示範環境中啟動。
示範使用者會有特定限制,設定方式與受管理的裝置類似,
設定檔政策,防止應用程式和使用者執行特定作業。
其中一項限制為 DISALLOW_MODIFY_ACCOUNTS
。達到這項限制時,AccountManager
和設定
不允許新增帳戶。部分 Google 應用程式已回應這項限制
而且顯示錯誤訊息,其他人也不會提示帳戶 (例如
YouTube 和相簿)。建議原始設備製造商 (OEM) 應用程式一併檢查是否
DISALLOW_MODIFY_ACCOUNTS
已設定完成,並據此處理情況。
系統更新
根據預設,啟用零售模式後,裝置政策會設為無線傳輸 (OTA) 會自動更新。零售裝置將下載、重新啟動及安裝 在使用者未進行互動的情況下,即視同電池閾值。
零售商展示應用程式
如要導入以裝置擁有者為主的零售商展示模式, 裝置政策控制器 將應用程式設為裝置擁有者。Android 開放原始碼計畫包含 RetailDemo 應用程式 實作於 /packages/apps/RetailDemo。
裝置擁有者應用程式不需要進階權限,也不必預先安裝 系統映像檔的映像檔,且可在設定或佈建過程中下載。 實作方法大多與傳統應用程式類似,但有以下幾點: 差異:
所有裝置擁有者的應用程式都必須擴充 DeviceAdminReceiver 元件,做為所有 DevicePolicyManager 相互整合元件必須保留
android.permission.BIND_DEVICE_ADMIN
權限、將要求的特殊政策做為中繼資料,以及篩選android.app.action.PROFILE_PROVISIONING_COMPLETE
和android.app.action.DEVICE_ADMIN_ENABLED
意圖。DevicePolicyManager#MAKE_USER_DEMO 標記是隱藏的 API,這項設定會建立特殊的示範類型使用者。這個標記 常數的值為 0x4。
裝置擁有權只能透過裝置管理角色指派 擁有者或 ManagedProvisioning 應用程式。
DevicePolicyManager 中的 API 類別可讓裝置擁有者 (DO) 和設定檔擁有者 (PO) 強制執行各種裝置 再檢查有關聯的允許政策DevicePolicyManager 下列是適用於零售商展示模式的函式。
建立及管理使用者。
重新啟動裝置。
設定 LockTask 允許的套件。
透過 PackageInstaller 安裝套件。
禁止解除安裝套件。
啟用自動更新功能。裝置會自動下載並套用 OTA 更新。
停用鍵盤鎖。
禁止設定密碼或指紋。
設定一組已加入許可清單的 Settings.Global、 Settings.Secure、 以及 Settings.System。 可以管理叢集設定,像是節點 資源調度、安全性和其他預先設定項目
將權限政策設為
PERMISSION_POLICY_AUTO_GRANT
。 會自動授予所有執行階段權限您也可以授予權限 單一權限為單一應用程式這不適用於 應用程式操作權限,使用者仍必須針對個別應用程式分別授予權限。設定與零售模式相關的使用者限制 (定義請見: UserManager 如下所示。
DISALLOW_MODIFY_ACCOUNTS
DISALLOW_USB_FILE_TRANSFER
DISALLOW_DEBUGGING_FEATURES
DISALLOW_CONFIG_WIFI
DISALLOW_CONFIG_BLUETOOTH
DISALLOW_INSTALL_UNKNOWN_SOURCES
DISALLOW_CONFIG_MOBILE_NETWORKS
使用網頁版更新示範影片
/packages/apps/RetailDemo 中的 RetailDemo 應用程式 可以在有網路連線的情況下更新示範影片。 覆寫下列項目即可設定下載影片的網址 字串值。
<!-- URL where the retail demo video can be downloaded from. -->
<string name="retail_demo_video_download_url"></string>
如需在不同地區使用不同影片,請採用 只要使用語言代碼專屬的字串資源,就能設定下載網址 res/values-*/strings.xml 中為字串。 例如,如果要在美國使用不同影片, 在英國,對應的下載網址可放在 分別為 res/values-en-rUS/strings.xml 和 res/values-en-rGB/strings.xml 如下所示。
在 res/values-en-rUS/strings.xml 中:
<string name="retail_demo_video_download_url">download URL for US video goes here</string>
在 res/values-en-rGB/strings.xml 中:
<string name="retail_demo_video_download_url">download URL for UK video goes here</string>
每次重新啟動裝置時,系統最多只會下載這部影片。當 裝置正在播放影片,RetailDemo 應用程式會在背景檢查 如果提供下載網址,但網址中的影片更新 播放時間。
在這種情況下,RetailDemo 應用程式會下載並開始播放影片。影片 下載後,所有示範工作階段都會使用這個設定檔播放。無 這些檢查會持續執行,直到下次重新啟動為止。
示範影片規範
示範影片必須為直向版面配置;如果是平板電腦,則需在裝置的 長度不限,長度也可以超過 5 秒。內容 播放時不會出現烙印情形,因為影片會在顯示狀態下持續播放。
請參閱「Android 開發人員定義」 以及 Device Policy Manager API 說明文件 和 Device Owner app 瞭解詳情
驗證
CTS 並未涵蓋零售商展示模式,因為這是選用功能。測試中 必須手動執行,或針對試用版應用程式進行單元測試。
示範工作階段
示範工作階段設定
如果為展示模式設定零售商展示模式,零售商展示裝置可能會啟動零售商展示模式 。或者,零售業員工也可以啟用零售模式 直接在設定精靈中操作
圖 2. 零售商展示模式
顯示示範工作階段
裝置進入零售模式後,就會切換至新的展示模式使用者, 自動啟動疊加層資源中指定的自訂啟動器 ,如「導入」中所述。根據預設 使用者輕觸 啟動示範使用者工作階段。自此之後,自訂啟動器就會啟動 系統啟動器中接著退出原始設備製造商 (OEM) 可以修改自訂啟動器 並在結束時啟動其他服務或活動。
為維持零售模式的完整性,系統將停用鍵盤鎖, 「快速設定」中的某些動作可能會對零售模式造成負面影響 也不允許刊登這類內容,包括:
- 飛航模式切換鈕。
- 移除或修改 Wi-Fi 存取點 (「設定」)。
- 變更電信業者 (設定)。
- 正在設定無線基地台 (設定)。
- 正在切換使用者。
此外,部分可能影響的全域設定也會遭到封鎖。 打造零售模式,方法是停用下列項目:
- Wi-Fi 設定。
- 行動網路設定選項,尤其是無線基地台。
- 藍牙設定。
- 備份與重設、日期與時間和行動網路 (完全不會顯示)。
如果使用者閒置一段時間 (預設為 90 秒),零售模式 顯示系統對話方塊,提示使用者結束或繼續。 如果使用者選擇退出,或是五秒沒有回應,則零售業 模式會移除目前的示範使用者、切換至新的示範使用者,並且 循環播放原始影片。如果使用 電源鍵,幾秒後就會自動重新啟動。
結束展示工作階段後,裝置會將自己設為靜音,並將部分裝置重設為全域通用 設定,包括:
- 亮度
- 自動旋轉
- 手電筒
- 語言
- 無障礙設定
結束零售商展示模式
如要退出零售模式,零售員工必須確保示範裝置 裝置未註冊裝置管理,並將裝置恢復原廠設定: 。