Chế độ giới thiệu bán lẻ

Android 7.1.1 đã giới thiệu tính năng hỗ trợ ở cấp hệ thống cho chế độ bản demo bán lẻ để khách hàng có thể xem xét các thiết bị đang hoạt động tại các cửa hàng bán lẻ. Thiết bị được thiết lập để chạy bản dùng thử bán lẻ bằng một ứng dụng chủ sở hữu thiết bị nhằm đảm bảo rằng việc sử dụng thiết bị chỉ giới hạn ở một số ứng dụng ở chế độ dùng thử. 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ị trình diễn bán lẻ. Android 8.1 sửa đổi chế độ hỗ trợ này để tạo người dùng minh hoạ thông qua API DevicePolicyManager createAndManageUser. Điều này cho phép OEM tuỳ chỉnh chế độ bán lẻ tiêu chuẩn nhiều hơn về việc quản lý người dùng và quản lý chính sách thiết bị trên thiết bị minh hoạ.

Mặc dù có thể sử dụng các API DevicePolicyManager trên các phiên bản trước Android 8.1, nhưng không thể tạo người dùng demo-type (DevicePolicyManager.MAKE_USER_DEMO) bằng API createAndManageUser trong các phiên bản 8.0 trở xuống.

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

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

Thay đổi của nền tảng

Đặt DEVICE_DEMO_MODE

Các thiết bị triển khai chế độ trình diễn 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 cấp phép cho chế độ trình diễn 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ư hồ sơ nguồn và SystemUI.

Bật RetailDemoModeService

Trong các thiết bị triển khai chế độ giới thiệu bán lẻ, trình hướng dẫn thiết lập sẽ đặt một chế độ 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 chế độ cài đặt này, RetailDemoModeService sẽ tạo một người dùng dùng thử và chuyển sang người dùng đó khi người dùng 0 bắt đầu, bật trình chạy tuỳ chỉnh được chỉ định trong một tài nguyên lớp phủ và tắt SUW. System Server 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 chạy hoặc trình phát video tuỳ chỉnh

Nhà sản xuất thiết bị có thể chỉ định một trình chạy tuỳ 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 trong bản trình bày bán lẻ nằm tại /packages/apps/RetailDemo là trình chạy tuỳ chỉnh mặc định trong Dự án nguồn mở Android (AOSP). Ứng dụng sẽ tìm một video trong phân vùng thiết bị, chẳng hạn như /data/preloads/demo/retail_demo.mp4 và phát video đó lặp lại. Khi người dùng chạm vào màn hình, trình chạy tuỳ chỉnh sẽ tắt thành phần hoạt động của trình chạy này, khiến trình chạy hệ thống mặc định khởi động.

Trình chạy tuỳ chỉnh phải đánh dấu thành phần tuỳ chỉnh là bị vô hiệu hoá theo mặc định để thành phần đó không xuất hiện trong các trường hợp không phải là bản minh hoạ. Trong trường hợp minh hoạ, Máy chủ hệ thống sẽ bật config_demoModeLauncherComponent đã chỉ định khi bắt đầu một phiên minh hoạ mới.

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

Tuỳ chỉnh các ứng dụng được tải sẵn cho chế độ minh hoạ bán lẻ

Các ứng dụng được tải sẵn có thể tuỳ chỉnh trải nghiệm của mình cho chế độ giới thiệu 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 minh hoạ hay không.

Một số hạn chế được đặt trong người dùng minh hoạ, tương tự như các chính sách về thiết bị hoặc hồ sơ đượ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 quy định hạn chế này là DISALLOW_MODIFY_ACCOUNTS. Với chế độ hạn chế này, AccountManagerSettings không cho phép thêm tài khoản. Một số ứng dụng Google phản ứng với hạn chế này và cho thấy thông báo lỗi, còn những ứng dụng khác sẽ không nhắc bạn chọn tài khoản (chẳng hạn như YouTube và Photos). 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 cho phù hợp.

Bản cập nhật hệ thống

Theo mặc định, khi chế độ bán lẻ được bật, chính sách thiết bị sẽ tự động được đặt thành cập nhật qua mạng (OTA). 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 thủ ngưỡng pin) mà không cần người dùng tương tác.

Ứng dụng giới thiệu bán lẻ

Việc triển khai chế độ trình diễn bán lẻ dựa trên chủ sở hữu thiết bị yêu cầu bạn đặt ứng dụng Device Policy Controller làm chủ sở hữu thiết bị. AOSP chứa một bản triển khai ứng dụng RetailDemo tham chiếu trong /packages/apps/RetailDemo.

Các ứ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ể được tải xuống trong quá trình thiết lập hoặc cung cấp. Chúng chủ yếu được triển khai 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 nhiều chính sách thiết bị. Sau đây là một số hàm DevicePolicyManager áp dụng cho chế độ giới thiệu bán lẻ.

  • 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 các gói thông qua PackageInstaller.

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

  • Bật tính năng tự động cập nhật hệ thố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 khoá bảo vệ.

  • Ngăn việc thiết lập mật khẩu hoặc vân tay.

  • Đặt một nhóm chế độ cài đặt trong danh sách cho phép của Settings.Global, Settings.SecureSettings.System.

  • Đặt chính sách về quyền thành PERMISSION_POLICY_AUTO_GRANT, chính sách này sẽ tự động cấp tất cả quyền khi bắt đầu 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 duy nhất. Điều này không áp dụng cho các quyền app-ops, mà người dùng vẫn phải cấp cho từng người dùng, từng ứng dụng.

  • Đặt các hạn chế đối với người dùng có 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 minh hoạ bằng web

Ứng dụng RetailDemo trong /packages/apps/RetailDemo có khả năng cập nhật video minh hoạ nếu có kết nối mạng. Bạn có thể định cấu hình URL để tải video xuống 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 dùng nhiều video ở nhiều khu vực, thì bạn có thể định cấu hình nhiều URL tải xuống bằng cách dùng tài nguyên chuỗi dành riêng cho từng ngôn ngữ trong res/values-*/strings.xml. Ví dụ: nếu bạn cần sử dụng các video khác nhau ở Hoa Kỳ và Vương quốc Anh, thì bạn có thể đặt các URL tải xuống tương ứng trong res/values-en-rUS/strings.xml và res/values-en-rGB/strings.xml, 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 chỉ đượ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 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 đó có mới hơn video đang phát hay không.

Nếu có, ứ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 này sẽ được dùng để phát trong tất cả các phiên bản trình diễn sau này. Không có lần kiểm tra nào diễn ra nữa cho đến sau lần khởi động lại tiếp theo.

Nguyên tắc về video minh hoạ

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

Hãy 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 về Device Policy Manager APIỨng dụng Mẫu chủ sở hữu thiết bị để biết thêm thông tin.

Xác nhận kết quả

CTS không bao gồm chế độ giới thiệu bán lẻ vì đây là một tính năng không bắt buộc. Bạn phải tiến hành kiểm thử theo cách thủ công hoặc bằng các kiểm thử đơn vị cho ứng dụng minh hoạ.

Phiên minh hoạ

Thiết lập phiên minh hoạ

Các thiết bị minh hoạ bán lẻ có thể khởi động ở chế độ minh hoạ bán lẻ nếu được định cấu hình cho chế độ minh hoạ từ nhà máy. Ngoài ra, nhân viên bán lẻ có thể bật chế độ bán lẻ ngay trong trình hướng dẫn thiết lập.

Chế độ giới thiệu bán lẻ

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

Hiển thị phiên trình diễn

Khi thiết bị chuyển sang chế độ bán lẻ, thiết bị sẽ chuyển sang một người dùng minh hoạ mới và tự động khởi động trình chạy tuỳ chỉnh được chỉ định trong tài nguyên lớp phủ như mô tả trong phần Triển khai. Theo mặc định, trình chạy tuỳ chỉnh này sẽ phát video minh hoạ lặp lại cho đến khi người dùng chạm vào màn hình để bắt đầu một phiên người dùng minh hoạ. Lúc đó, trình chạy tuỳ chỉnh sẽ khởi động trình chạy hệ thống rồi thoát. Các OEM có thể thay đổi trình chạy tuỳ 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ẻ, keyguard sẽ bị vô hiệu hoá và một số thao tác nhất định trong phần Cài đặt nhanh có thể ảnh hưởng tiêu cực đến chế độ bán lẻ cũng sẽ không được phép, bao gồm cả những thao tác sau.

  • Nút bật/tắt chế độ trên máy bay.
  • Xoá hoặc sửa đổi điểm truy cập Wi-Fi (Cài đặt).
  • Thay đổi nhà mạng (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 vào một số chế độ cài đặt chung có thể ảnh hưởng đến chế độ bán lẻ cũng bị chặn bằng cách tắt các chế độ cài đặt sau:

  • Cài đặt Wi-Fi.
  • Các lựa chọn cấu hình mạng di động, đặc biệt là điểm phát sóng.
  • Cấu hình Bluetooth.
  • Sao lưu và đặt lại, Ngày và giờ, và Mạng di động (các mục này hoàn toàn không xuất hiện).

Nếu người dùng không hoạt động trong một khoảng thời gian (theo mặc định là 90 giây), chế độ bán lẻ sẽ hiển thị một hộp thoại hệ thống để nhắc người dùng thoát phiên hoặc tiếp tục. Nếu người dùng chọn thoát hoặc nếu không có phản hồi trong 5 giây, thì chế độ bán lẻ sẽ xoá người dùng bản trình diễn hiện tại, chuyển sang một người dùng bản trình diễn mới và lặp lại video ban đầu. Nếu bạn tắt màn hình 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 một phiên bản dùng thử, các thiết bị sẽ tự động tắt tiếng và đặt lại một số chế độ cài đặt chung, bao gồm cả những chế độ cài đặt sau:

  • Độ sáng
  • Tự động xoay
  • Đèn pin
  • Ngôn ngữ
  • Hỗ trợ tiếp cận

Thoát khỏi chế độ minh hoạ 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ị minh hoạ không được đăng ký trong hệ thống quản lý thiết bị và đặt lại thiết bị về trạng thái ban đầu từ trình tải khởi động.