Chế độ demo bán lẻ

Android 7.1.1 đã giới thiệu hỗ trợ cấp hệ thống cho chế độ demo bán lẻ để khách hàng có thể kiểm tra hoạt động của thiết bị tại các cửa hàng bán lẻ. Các thiết bị được thiết lập để dùng thử bán lẻ bằng ứng dụng của chủ sở hữu thiết bị để đảm bảo rằng việc sử dụng thiết bị chỉ bị hạn chế ở một số ứng dụng ở chế độ demo nhất định. Người dùng cuối không được phép thêm tài khoản cá nhân trên thiết bị demo bán lẻ. Android 8.1 sửa đổi hỗ trợ này để tạo người dùng demo thông qua API DevicePolicyManager createAndManagerUser . Điều này cho phép tùy chỉnh OEM lớn hơn nhiều đối với chế độ bán lẻ tiêu chuẩn về mặt quản lý người dùng và quản lý chính sách thiết bị trên thiết bị demo.

Mặc dù API DevicePolicyManager có thể được sử dụng trên các phiên bản trước Android 8.1, nhưng không thể tạo người dùng loại demo ( DevicePolicyManager.MAKE_USER_DEMO ) bằng API createAndManagerUser trong phiên bản 8.0 trở về trước.

Triển khai trong Android 8.1 trở lên

Phần này nêu bật các cải tiến của nền tảng và mô tả ứng dụng demo bán lẻ trong Android 8.1 trở lên.

Thay đổi nền tảng

Đặt DEVICE_DEMO_MODE

Các thiết bị triển khai chế độ demo bán lẻ dựa trên chủ sở hữu thiết bị phải đặt Settings.Global.DEVICE_DEMO_MODE thành 1 trước khi cấp phép để cho biết rằng thiết bị đang được cung cấp cho chế độ demo bán lẻ. SystemServer sử dụng cờ này để quản lý các khía cạnh của chế độ bán lẻ, chẳng hạn như cấu hình nguồn và SystemUI.

Kích hoạt dịch vụ RetailDemoModeService

Trong các thiết bị triển khai chế độ demo bán lẻ, trình hướng dẫn thiết lập sẽ đặt cài đặt chung Global.DEVICE_DEMO_MODE thành true để cho biết rằng thiết bị đã chuyển sang chế độ bán lẻ. Khi thấy cài đặt này, RetailDemoModeService sẽ tạo người dùng demo và chuyển sang người dùng đó khi người dùng 0 khởi động, bật trình khởi chạy tùy chỉnh được chỉ định trong tài nguyên lớp phủ và tắt SUW. Máy chủ hệ thống và SystemUI cũng sử dụng cờ này để quản lý các khía cạnh của chế độ bán lẻ.

Đặt trình khởi chạy hoặc trình phát video tùy chỉnh

Nhà sản xuất thiết bị có thể chỉ định trình khởi chạy tùy chỉnh bằng cách ghi đè tài nguyên khung config_demoModeLauncherComponent được chỉ định trong tệp config.xml như sau.

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

Ứng dụng DemoPlayer demo bán lẻ có tại /packages/apps/RetailDemo là trình khởi chạy tùy chỉnh mặc định trong Dự án mã nguồn mở Android (AOSP). Ứng dụng tìm kiếm video trong phân vùng thiết bị, chẳng hạn như /data/preloads/demo/retail_demo.mp4 và phát video đó theo vòng lặp. Khi người dùng chạm vào màn hình, trình khởi chạy tùy chỉnh sẽ vô hiệu hóa thành phần hoạt động của nó, điều này khiến trình khởi chạy hệ thống mặc định khởi động.

Trình khởi chạy tùy chỉnh phải có thành phần tùy chỉnh được đánh dấu là bị tắt theo mặc định để nó không hiển thị trong các trường hợp không phải bản demo. Trong kịch bản demo, Máy chủ hệ thống kích hoạt config_demoModeLauncherComponent được chỉ định khi bắt đầu phiên demo mới.

Trình hướng dẫn thiết lập cũng tìm kiếm video được đề cập trước đó để cung cấp đủ khả năng để vào chế độ bán lẻ. SUW có thể được sửa đổi để tìm kiếm một số dấu hiệu cụ thể khác của OEM cho thấy chế độ bán lẻ được hỗ trợ nếu video không phải là một phần của bản demo. Nếu có phân vùng hệ thống A/B thì phân vùng hệ thống B phải chứa video demo tại /preloads/demo. Điều này được sao chép vào /data/preloads/demo trong lần khởi động đầu tiên.

Tùy chỉnh các ứng dụng được tải sẵn cho chế độ demo bán lẻ

Các ứng dụng được tải sẵn có thể tùy chỉnh trải nghiệm của chúng cho chế độ demo bán lẻ bằng cách gọi API UserManager.isDemoUser() để xem ứng dụng có được khởi chạy trong môi trường demo hay không.

Một số hạn chế nhất định được đặt trong người dùng demo, tương tự như các chính sách hồ sơ hoặc thiết bị được quản lý nhằm ngăn ứng dụng và người dùng thực hiện một số thao tác nhất định. Một trong những hạn chế này là DISALLOW_MODIFY_ACCOUNTS . Với hạn chế này, Trình quản lý tài khoảnCài đặt không cho phép thêm tài khoản. Một số ứng dụng của Google phản ứng với hạn chế này và hiển thị thông báo lỗi, còn những ứng dụng khác sẽ không nhắc nhập tài khoản (chẳng hạn như YouTube và Photos). Chúng tôi khuyên các ứng dụng OEM cũng nên kiểm tra xem DISALLOW_MODIFY_ACCOUNTS có được đặt hay không và xử lý tình huống tương ứng.

Cập nhật hệ thống

Theo mặc định, khi bật chế độ bán lẻ, chính sách thiết bị sẽ tự động được đặt thành cập nhật qua mạng (OTA). Các thiết bị bán lẻ sẽ tải xuống, khởi động lại và cài đặt bản cập nhật (tuân theo ngưỡng pin) mà không cần sự tương tác của người dùng.

Ứng dụng demo bán lẻ

Việc triển khai chế độ demo bán lẻ dựa trên chủ sở hữu thiết bị yêu cầu phải đặt ứng dụng Bộ điều khiển chính sách thiết bị làm chủ sở hữu thiết bị. AOSP chứa triển khai ứng dụng RetailDemo tham chiếu trong /packages/apps/RetailDemo .

Ứng dụng của chủ sở hữu thiết bị không cần đặc quyền nâng cao hoặc cài đặt sẵn trên hình ảnh hệ thống và có thể tải xuống trong quá trình thiết lập hoặc cấp phép. Chúng hầu hết được triển khai giống như các ứng dụng truyền thống, với những điểm khác biệt sau:

Các API trong lớp DevicePolicyManager cho phép Chủ sở hữu thiết bị (DO) và Chủ sở hữu hồ sơ (PO) thực thi các chính sách thiết bị khác nhau. Một số chức năng DevicePolicyManager áp dụng cho chế độ demo bán lẻ được liệt kê như sau.

  • Tạo và quản lý người dùng.

  • Khởi động lại thiết bị.

  • Đặt các gói được phép LockTask.

  • Cài đặt gói thông qua PackageInstaller .

  • Chặn các gói được gỡ cài đặt.

  • Kích hoạt cập nhật hệ thống tự động. Thiết bị sẽ tự động tải xuống và áp dụng các bản cập nhật OTA.

  • Tắt tính năng bảo vệ bàn phím.

  • Ngăn chặn việc đặt mật khẩu hoặc dấu vân tay.

  • Đặt một nhóm cài đặt trong danh sách cho phép gồm có các cài đặt Setting.Global , Setting.SecureSetting.System .

  • Đặt chính sách cấp phép thành PERMISSION_POLICY_AUTO_GRANT để tự động cấp tất cả các quyền trong thời gian chạy. Quyền cũng có thể được cấp hẹp hơn: một quyền duy nhất cho một ứng dụng. Điều này không áp dụng cho các quyền của ứng dụng mà người dùng vẫn phải cấp trên cơ sở mỗi người dùng, mỗi ứng dụng.

  • Đặt các giới hạn người dùng liên quan đến chế độ bán lẻ như được xác định trong UserManager như sau.

    • DISALLOW_MODIFY_ACCOUNTS
    • DISALLOW_USB_FILE_TRANSFER
    • DISALLOW_DEBUGGING_FEATURES
    • DISALLOW_CONFIG_WIFI
    • DISALLOW_CONFIG_BLUETOOTH
    • DISALLOW_INSTALL_UNKNOWN_SOURCES
    • DISALLOW_CONFIG_MOBILE_NETWORKS

Cập nhật video demo bằng web

Ứng dụng RetailDemo trong /packages/apps/RetailDemo có khả năng cập nhật video demo nếu có kết nối mạng. URL để tải xuống video có thể được định cấu hình bằng cách ghi đè giá trị chuỗi sau trong ứng dụng RetailDemo.

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

Nếu cần sử dụng các video khác nhau ở các khu vực khác nhau thì bạn có thể định cấu hình các URL tải xuống khác nhau bằng cách sử dụng tài nguyên chuỗi dành riêng cho từng miền địa phương trong res/values-*/strings.xml . Ví dụ: nếu các video khác nhau cần được sử dụng ở Hoa Kỳ và Vương quốc Anh thì các URL tải xuống tương ứng có thể được đặt trong res/values-en-rUS/strings.xml và res/values-en-rGB/strings.xml , tương ứng, được hiển thị như sau.

  • Trong res/values-en-rUS/strings.xml:

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

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

Video này được tải xuống tối đa một lần cho mỗi lần khởi động lại thiết bị. Khi video trên thiết bị đang được phát, ứng dụng RetailDemo sẽ kiểm tra ở chế độ nền xem URL tải xuống có được cung cấp hay không và video tại URL mới hơn video đang được phát.

Nếu vậy, ứng dụng RetailDemo sẽ tải xuống và bắt đầu phát video. Sau khi video được tải xuống, video sẽ được sử dụng để phát trong tất cả các phiên demo sau này. Không có hoạt động kiểm tra nào xảy ra nữa cho đến lần khởi động lại tiếp theo.

Hướng dẫn về video demo

Video trình diễn phải ở bố cục dọc hoặc, nếu là máy tính bảng, ở hướng tự nhiên của thiết bị và có thể có độ dài bất kỳ lớn hơn năm giây. Nội dung không được dẫn đến hiện tượng burn-in vì nội dung đó sẽ được phát liên tục khi hiển thị.

Xem định nghĩa của Nhà phát triển Android về người dùng, hồ sơ và tài khoản, tài liệu API Trình quản lý chính sách thiết bịứng dụng Chủ sở hữu thiết bị mẫu để biết thêm thông tin.

Thẩm định

CTS không bao gồm chế độ demo bán lẻ vì đây là tính năng tùy chọn. Việc kiểm tra phải được tiến hành thủ công hoặc bằng các bài kiểm tra đơn vị cho ứng dụng demo.

Phiên demo

Thiết lập phiên demo

Thiết bị demo bán lẻ có thể khởi động vào chế độ demo bán lẻ nếu được định cấu hình cho chế độ demo từ nhà máy. Ngoài ra, nhân viên bán lẻ có thể kích hoạt chế độ bán lẻ trực tiếp từ trình hướng dẫn thiết lập.

Retail demo mode

Hình 2. Chế độ trình diễn bán lẻ

Hiển thị phiên demo

Khi thiết bị chuyển sang chế độ bán lẻ, thiết bị sẽ chuyển sang người dùng demo mới và tự động khởi động trình khởi chạy tùy chỉnh được chỉ định trong tài nguyên lớp phủ như được mô tả trong Triển khai . Theo mặc định, trình khởi chạy tùy chỉnh này phát lặp lại video demo cho đến khi người dùng chạm vào màn hình để bắt đầu phiên người dùng demo. Khi đó, trình khởi chạy tùy chỉnh khởi động trình khởi chạy hệ thống rồi thoát. OEM có thể thay đổi trình khởi chạy tùy chỉnh để khởi chạy thêm một dịch vụ hoặc hoạt động khác khi thoát.

Để duy trì tính toàn vẹn của chế độ bán lẻ, tính năng bảo vệ phím bị vô hiệu hóa và một số hành động nhất định từ Cài đặt nhanh có thể ảnh hưởng xấu đến chế độ bán lẻ cũng không được phép, bao gồm các hành động sau.

  • Chuyển đổi chế độ trên máy bay.
  • Xóa hoặc sửa đổi các điểm truy cập Wi-Fi (Cài đặt).
  • Thay đổi nhà cung cấp dịch vụ (Cài đặt).
  • Định cấu hình điểm phát sóng (Cài đặt).
  • Chuyển đổi người dùng.

Ngoài ra, quyền truy cập cũng bị chặn đối với một số cài đặt chung có thể ảnh hưởng đến chế độ bán lẻ bằng cách vô hiệu hóa các cài đặt sau:

  • Cài đặt Wi-Fi.
  • Tùy chọn cấu hình mạng di động, đặc biệt là các điểm nóng.
  • Cấu hình Bluetooth.
  • Sao lưu & Đặt lại, Ngày & Giờ và Mạng di động (chúng hoàn toàn không hiển thị).

Nếu người dùng không hoạt động trong một khoảng thời gian (90 giây theo mặc định), chế độ bán lẻ sẽ hiển thị hộp thoại hệ thống để nhắc người dùng thoát khỏi phiên hoặc tiếp tục. Nếu người dùng chọn thoát hoặc không có phản hồi trong 5 giây, chế độ bán lẻ sẽ xóa người dùng demo hiện tại, chuyển sang người dùng demo mới và lặp lại video gốc. Nếu màn hình bị tắt bằng nút nguồn, màn hình sẽ tự động bật lại sau vài giây.

Sau khi thoát khỏi phiên demo, các thiết bị sẽ tự tắt tiếng và đặt lại một số cài đặt chung, bao gồm các cài đặt sau:

  • độ sáng
  • Tự động xoay
  • Đèn pin
  • Ngôn ngữ
  • Khả năng tiếp cận

Thoát khỏi chế độ demo bán lẻ

Để thoát khỏi chế độ bán lẻ, nhân viên bán lẻ phải đảm bảo rằng thiết bị demo không được đăng ký trong phần quản lý thiết bị và khôi phục cài đặt gốc cho thiết bị từ bộ tải khởi động.