โหมดสาธิตสำหรับร้านค้าปลีก

Android 7.1.1 ได้เปิดตัวการสนับสนุนระดับระบบสำหรับโหมดการสาธิตสำหรับร้านค้าปลีกเพื่อให้ ลูกค้าสามารถดูการใช้งานอุปกรณ์จริงได้ที่ร้านค้าปลีก ตั้งค่าอุปกรณ์แล้ว สำหรับการสาธิตร้านค้าปลีกโดยใช้แอปเจ้าของอุปกรณ์เพื่อให้แน่ใจว่าการใช้งานอุปกรณ์ ใช้ได้กับแอปโหมดสาธิตบางแอปเท่านั้น ผู้ใช้ปลายทางต้องไม่สามารถเพิ่ม บัญชีส่วนตัวในอุปกรณ์การสาธิตสำหรับร้านค้าปลีก Android 8.1 แก้ไขการสนับสนุนนี้เป็น สร้าง สาธิตผู้ใช้ผ่านทาง DevicePolicyManager createAndManageUser API ซึ่งช่วยให้สามารถปรับแต่ง OEM ได้มากขึ้นสำหรับโหมดหน้าร้าน เกี่ยวกับการจัดการผู้ใช้และการจัดการนโยบายด้านอุปกรณ์ในอุปกรณ์สาธิต

ขณะที่ DevicePolicyManager API ใช้ได้ในเวอร์ชันก่อน Android 8.1 เท่านั้น สร้างผู้ใช้ประเภทสาธิต (DevicePolicyManager.MAKE_USER_DEMO) ไม่ได้ ที่มี createAndManageUser API ในเวอร์ชัน 8.0 และเก่ากว่า

การใช้งานใน Android 8.1 ขึ้นไป

ส่วนนี้จะไฮไลต์การเพิ่มประสิทธิภาพแพลตฟอร์มและอธิบายถึงการสาธิตสำหรับร้านค้าปลีก แอปใน Android 8.1 ขึ้นไป

การเปลี่ยนแปลงของแพลตฟอร์ม

ตั้งค่า DEVICE_DEMO_MODE

อุปกรณ์ที่ใช้โหมดสาธิตสำหรับการค้าปลีกตามเจ้าของอุปกรณ์ต้องตั้งค่า Settings.Global.DEVICE_DEMO_MODE เป็น 1 ก่อนวันที่ การจัดสรรเพื่อระบุว่ามีการจัดสรรอุปกรณ์สำหรับการสาธิตสำหรับร้านค้าปลีก เซิร์ฟเวอร์ระบบ ใช้ Flag นี้เพื่อจัดการด้านต่างๆ ของโหมดค้าปลีก เช่น โปรไฟล์พลังงานและ SystemUI

เปิดใช้ RetailDemoModeService

ในอุปกรณ์ที่ใช้โหมดสาธิตสำหรับร้านค้าปลีก วิซาร์ดการตั้งค่าตั้งค่า กำลังตั้งค่า Global.DEVICE_DEMO_MODE ไปยัง true เพื่อระบุว่าอุปกรณ์เข้าสู่โหมดค้าปลีก เมื่อ เมื่อเห็นการตั้งค่านี้ RetailDemoModeService จะสร้างผู้ใช้สาธิต และสลับไปเมื่อผู้ใช้ 0 เริ่มทำงาน ซึ่งจะเป็นการเปิดใช้ Launcher แบบกำหนดเองที่ระบุในทรัพยากรการวางซ้อนและปิดใช้ SUW ระบบ เซิร์ฟเวอร์และ SystemUI ยังใช้ Flag นี้เพื่อจัดการด้านต่างๆ ของโหมดค้าปลีกด้วย

ตั้งค่า Launcher หรือวิดีโอเพลเยอร์ที่กำหนดเอง

ผู้ผลิตอุปกรณ์สามารถระบุ Launcher ที่กำหนดเองโดยการลบล้างเฟรมเวิร์ก ทรัพยากร config_demoModeLauncherComponent ที่ระบุใน config.xml ดังนี้

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

แอป DemoPlayer สำหรับร้านค้าปลีกซึ่งอยู่ที่ /packages/apps/การสาธิตร้านค้าปลีก เป็น Launcher ที่กำหนดเองเริ่มต้นในโครงการโอเพนซอร์ส Android (AOSP) แอปมองหาวิดีโอในพาร์ติชันอุปกรณ์ เช่น /data/preloads/demo/retail_demo.mp4 และเล่นวนซ้ำ เมื่อผู้ใช้แตะหน้าจอ Launcher ที่กำหนดเอง ปิดใช้คอมโพเนนต์กิจกรรม ซึ่งทำให้ตัวเรียกใช้งานระบบเริ่มต้น เริ่มต้น

Launcher ที่กำหนดเองต้องมีการทำเครื่องหมายคอมโพเนนต์ที่กำหนดเองเป็นปิดใช้โดยค่าเริ่มต้น เพื่อไม่ให้โฆษณาแสดงในสถานการณ์ที่ไม่ใช่ข้อมูลประชากร ในสถานการณ์สาธิต ระบบ เซิร์ฟเวอร์จะเปิดใช้ config_demoModeLauncherComponent ที่ระบุเมื่อเริ่มต้น เซสชันสาธิตใหม่

วิซาร์ดการตั้งค่ายังจะค้นหาวิดีโอที่กล่าวถึงก่อนหน้านี้เพื่อให้ และมีกำลังใจในการเข้าสู่โหมดค้าปลีก สามารถปรับแต่ง SUW เพื่อค้นหา สัญลักษณ์เฉพาะ OEM ที่ระบุว่าโหมดร้านค้าปลีกได้รับการสนับสนุนหากวิดีโอไม่ได้เป็นส่วนหนึ่งของ การสาธิต หากมีพาร์ติชัน A/B ของระบบ พาร์ติชันระบบ B ต้อง มีวิดีโอสาธิตอยู่ที่ /preloads/demo ระบบจะคัดลอกข้อมูลนี้ไปยัง /data/preloads/demo ในการเปิดเครื่องครั้งแรก

ปรับแต่งแอปที่โหลดไว้ล่วงหน้าสำหรับโหมดสาธิตสำหรับร้านค้าปลีก

แอปที่โหลดไว้ล่วงหน้าจะปรับแต่งประสบการณ์การใช้งานสำหรับโหมดสาธิตสำหรับร้านค้าปลีกได้โดยเรียกใช้ UserManager.isDemoUser() API เพื่อดูว่ามีการเปิดแอปในสภาพแวดล้อมการสาธิตหรือไม่

มีการตั้งข้อจำกัดบางอย่างไว้ในผู้ใช้สาธิต ซึ่งคล้ายกับอุปกรณ์ที่มีการจัดการหรือ นโยบายโปรไฟล์ที่ป้องกันไม่ให้แอปและผู้ใช้ดำเนินการบางอย่าง ข้อจํากัดอย่างหนึ่งคือ DISALLOW_MODIFY_ACCOUNTS ข้อจํากัดนี้ AccountManager และการตั้งค่า ไม่อนุญาตให้เพิ่มบัญชี แอป Google บางแอปโต้ตอบกับการจำกัดนี้ และแสดงข้อความแสดงข้อผิดพลาด และคนอื่นๆ จะไม่แสดงข้อความแจ้งสำหรับบัญชี (เช่น YouTube และ Photos) เราขอแนะนำให้แอป OEM ตรวจสอบด้วยว่า DISALLOW_MODIFY_ACCOUNTS ได้รับการตั้งค่าแล้วและจัดการสถานการณ์ตามที่เหมาะสม

การอัปเดตระบบ

เมื่อเปิดใช้โหมดค้าปลีกโดยค่าเริ่มต้น ระบบจะตั้งค่านโยบายอุปกรณ์เป็นผ่านอากาศ (OTA) (OTA) โดยอัตโนมัติ อุปกรณ์สำหรับค้าปลีกจะดาวน์โหลด รีบูต และติดตั้ง อัปเดต (เป็นไปตามเกณฑ์แบตเตอรี่) โดยที่ผู้ใช้ไม่ต้องโต้ตอบ

แอปเดโมสำหรับร้านค้าปลีก

การใช้งานโหมดสาธิตการค้าปลีกตามเจ้าของอุปกรณ์จำเป็นต้องมี เครื่องมือควบคุมนโยบายด้านอุปกรณ์ แอปที่จะตั้งเป็นเจ้าของอุปกรณ์ AOSP มีแอป RetailDemo อ้างอิง การใช้งานใน /packages/apps/RetailDemo

แอปของเจ้าของอุปกรณ์ไม่จำเป็นต้องใช้สิทธิ์ขั้นสูงหรือการติดตั้งล่วงหน้าในอุปกรณ์ อิมเมจของระบบและสามารถดาวน์โหลดได้ระหว่างขั้นตอนการตั้งค่าหรือการจัดสรร ซึ่งโดยส่วนใหญ่จะมีการใช้งานเช่นเดียวกับแอปแบบดั้งเดิม โดยมีวิธีดังต่อไปนี้ ความแตกต่าง:

API ใน DevicePolicyManager คลาสเปิดใช้งาน Device Owner (DO) และ Profile Owner (PO) เพื่อบังคับใช้กับอุปกรณ์หลายประเภท DevicePolicyManager บางส่วนของ ฟังก์ชันที่ใช้กับโหมดสาธิตสำหรับร้านค้าปลีกมีดังนี้

  • สร้างและจัดการผู้ใช้

  • รีบูตอุปกรณ์

  • ตั้งค่าแพ็กเกจที่อนุญาต LockTask

  • ติดตั้งแพ็กเกจผ่าน PackageInstaller

  • บล็อกไม่ให้ถอนการติดตั้งแพ็กเกจ

  • เปิดใช้การอัปเดตระบบอัตโนมัติ อุปกรณ์จะดาวน์โหลดและใช้การอัปเดต OTA โดยอัตโนมัติ

  • ปิดใช้การล็อกปุ่ม

  • ป้องกันการตั้งรหัสผ่านหรือลายนิ้วมือ

  • ตั้งค่าชุด Settings.Global ในรายการที่อนุญาต การตั้งค่าปลอดภัย และ 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

อัปเดตวิดีโอสาธิตโดยใช้เว็บ

แอป RetailDemo ใน /packages/apps/RetailDemo สามารถอัปเดตวิดีโอสาธิตได้หากมีการเชื่อมต่อเครือข่าย URL ที่ใช้ดาวน์โหลดวิดีโอสามารถกำหนดค่าได้โดยการลบล้าง ค่าสตริงในแอป RetailDemo

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

หากจำเป็นต้องใช้วิดีโอที่แตกต่างกันในแต่ละภูมิภาค ให้ใช้ คุณกำหนดค่า URL การดาวน์โหลดได้โดยใช้ทรัพยากรสตริงที่เจาะจงภาษา ใน res/values-*/strings.xml เช่น หากจำเป็นต้องใช้วิดีโอที่แตกต่างกันในสหรัฐอเมริกาและ สหราชอาณาจักร คุณสามารถวาง URL การดาวน์โหลดที่เกี่ยวข้องใน 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>
    

วิดีโอนี้ดาวน์โหลดมากที่สุด 1 ครั้งสำหรับการรีบูตอุปกรณ์ทุกครั้ง เมื่อ วิดีโอบนอุปกรณ์กำลังเล่นอยู่ แอป RetailDemo จะตรวจสอบอยู่เบื้องหลัง หากมีการระบุ URL สำหรับการดาวน์โหลดและวิดีโอใน URL นั้นใหม่กว่า ที่กำลังเล่น

หากเป็นเช่นนั้น แอป RetailDemo จะดาวน์โหลดและเริ่มเล่นวิดีโอ เมื่อวิดีโอ จะถูกดาวน์โหลด ซึ่งจะใช้สำหรับการเล่นในเซสชันการสาธิตทั้งหมดนับจากนี้เป็นต้นไป ไม่ใช้เลย ของการตรวจสอบเกิดขึ้นอีกครั้งจนกว่าจะมีการรีบูตครั้งถัดไป

หลักเกณฑ์สำหรับวิดีโอสาธิต

วิดีโอการสาธิตต้องอยู่ในแนวตั้งหรืออยู่ในอุปกรณ์ หากเป็นแท็บเล็ต การวางแนวตามธรรมชาติ และสามารถมีความยาวมากกว่า 5 วินาที คอนเทนต์ ต้องไม่ทำให้เกิดภาพค้างเนื่องจากภาพจะเล่นต่อเนื่องเมื่ออยู่บนจอแสดงผล

ดูคำจำกัดความสำหรับนักพัฒนาแอป Android ของผู้ใช้ โปรไฟล์ และบัญชี เอกสารประกอบเกี่ยวกับ Device Policy Manager API และตัวอย่างแอปเจ้าของอุปกรณ์ เพื่อดูข้อมูลเพิ่มเติม

การตรวจสอบความถูกต้อง

CTS ไม่ครอบคลุมโหมดสาธิตสำหรับร้านค้าปลีกเนื่องจากเป็นฟีเจอร์เสริม การทดสอบ ต้องดำเนินการด้วยตนเองหรือการทดสอบ 1 หน่วยสำหรับแอปเดโม

เซสชันการสาธิต

การตั้งค่าเซสชันสาธิต

อุปกรณ์การสาธิตสำหรับร้านค้าปลีกอาจบูตเข้าสู่โหมดสาธิตของร้านค้าปลีกหากมีการกำหนดค่าไว้สำหรับโหมดสาธิต ออกมาจากโรงงาน หรือพนักงานร้านค้าปลีกอาจเปิดใช้โหมดค้าปลีก จากวิซาร์ดการตั้งค่าได้โดยตรง

โหมดสาธิตสำหรับร้านค้าปลีก

รูปที่ 2 โหมดการสาธิตสำหรับร้านค้าปลีก

แสดงเซสชันการสาธิต

เมื่ออุปกรณ์เข้าสู่โหมดค้าปลีก อุปกรณ์จะเปลี่ยนไปเป็นผู้ใช้สาธิตรายใหม่ เริ่มต้น Launcher ที่กำหนดเองโดยอัตโนมัติซึ่งระบุในทรัพยากรการวางซ้อนโดยอัตโนมัติ ตามที่อธิบายไว้ในการใช้งาน โดยค่าเริ่มต้น Launcher ที่กำหนดเองนี้เล่นวิดีโอเดโมซ้ำๆ จนกว่าผู้ใช้จะแตะ เพื่อเริ่มเซสชันผู้ใช้การสาธิต เมื่อถึงเวลานั้น Launcher ที่กำหนดเองจะเริ่มต้น Launcher ของระบบแล้วออก OEM สามารถปรับเปลี่ยน Launcher ที่กำหนดเองเป็น เปิดใช้บริการหรือกิจกรรมอื่นเพิ่มเติมเมื่อออกจากระบบ

เพื่อรักษาความสมบูรณ์ของโหมดการค้าปลีก การล็อกจะปิดใช้งานและ การดำเนินการบางอย่างจากการตั้งค่าด่วนที่อาจส่งผลเสียต่อโหมดหน้าร้าน ได้แก่ และไม่อนุญาต ซึ่งรวมถึงสิ่งต่อไปนี้

  • สลับโหมดบนเครื่องบิน
  • การลบหรือแก้ไขจุดเข้าใช้งาน Wi-Fi (การตั้งค่า)
  • กำลังเปลี่ยนผู้ให้บริการ (การตั้งค่า)
  • กำลังกำหนดค่าฮอตสปอต (การตั้งค่า)
  • การเปลี่ยนผู้ใช้

นอกจากนี้ ระบบยังบล็อกการเข้าถึงการตั้งค่าส่วนกลางบางอย่างที่อาจส่งผล โหมดค้าปลีกโดยปิดใช้รายการต่อไปนี้

  • การตั้งค่า Wi-Fi
  • ตัวเลือกการกำหนดค่าเครือข่ายมือถือ โดยเฉพาะฮอตสปอต
  • การกำหนดค่าบลูทูธ
  • การสำรองข้อมูลและ รีเซ็ต วันที่และ เวลา และเครือข่ายมือถือ (จะไม่แสดงขึ้นมาเลย)

หากผู้ใช้ไม่มีความเคลื่อนไหวเป็นระยะเวลาหนึ่ง (90 วินาทีโดยค่าเริ่มต้น) โหมดค้าปลีก แสดงกล่องโต้ตอบของระบบเพื่อแจ้งให้ผู้ใช้ออกจากเซสชันหรือดำเนินการต่อ หากผู้ใช้เลือกที่จะออกหรือไม่มีการตอบสนองเป็นเวลา 5 วินาที ให้ขายปลีก โหมดนี้จะนำผู้ใช้สาธิตปัจจุบันออก สลับไปเป็นผู้ใช้สาธิตใหม่ และ เล่นวิดีโอต้นฉบับซ้ำ หากหน้าจอปิดอยู่โดยใช้ ปุ่มเปิด/ปิด ปุ่มนี้จะกลับมาปรากฏโดยอัตโนมัติหลังจากผ่านไป 2-3 วินาที

หลังจากออกจากเซสชันสาธิต อุปกรณ์จะปิดเสียงตัวเองและรีเซ็ตส่วนกลางบางส่วน ซึ่งรวมถึงการตั้งค่าต่อไปนี้

  • ความสว่าง
  • การหมุนอัตโนมัติ
  • ไฟฉาย
  • ภาษา
  • การช่วยเหลือพิเศษ

ออกจากโหมดสาธิตสำหรับร้านค้าปลีก

หากต้องการออกจากโหมดค้าปลีก พนักงานขายปลีกต้องตรวจสอบว่าอุปกรณ์สาธิต ไม่ได้ลงทะเบียนภายใต้การจัดการอุปกรณ์และรีเซ็ตอุปกรณ์เป็นค่าเริ่มต้นจาก Boot Loader