Android 7.1.1 đã ra mắt tính năng hỗ trợ cấp hệ thống cho chế độ bản minh hoạ bán lẻ để khách hàng có thể kiểm tra các thiết bị đang hoạt động tại cửa hàng bán lẻ. Thiết bị được thiết lập để giới thiệu bán lẻ bằng ứng dụng 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ế độ minh hoạ. Người dùng cuối không được thêm tài khoản cá nhân trên thiết bị minh hoạ bán lẻ. Android 8.1 sửa đổi tính năng 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 nhà sản xuất thiết bị gốc (OEM) tuỳ chỉnh nhiều hơn cho chế độ bán lẻ tiêu chuẩ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 loại minh hoạ (DevicePolicyManager.MAKE_USER_DEMO
) bằng API createAndManageUser trong các phiên bản 8.0 trở xuống.
Triển khai trong 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 minh hoạ bán lẻ trong Android 8.1 trở lên.
Thay đổi về nền tảng
Đặt DEVICE_DEMO_MODE
Các thiết bị triển khai chế độ minh hoạ 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ế độ minh hoạ 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ế độ minh hoạ bán lẻ, trình hướng dẫn thiết lập sẽ đặt chế độ cài đặt chung Global.DEVICE_DEMO_MODE
thành true
để cho biết 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 minh hoạ và chuyển sang người dùng đó khi người dùng 0 khởi động, bật trình chạy tuỳ 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 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 minh hoạ 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 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 đó theo vòng lặp. 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, khiến trình chạy hệ thống mặc định khởi động.
Trình chạy tuỳ chỉnh phải có thành phần tuỳ chỉnh được đánh dấu là tắt theo mặc định để không xuất hiện trong các trường hợp không phải 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 video được đề cập trước đó để cung cấp một tính năng hỗ trợ 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 phải là một phần của bản minh hoạ. 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 minh hoạ tại /preloads/demo. Tệp này được sao chép vào /data/preloads/demo trong lần khởi động đầu tiên.
Tuỳ chỉnh ứng dụng tải trước cho chế độ minh hoạ bán lẻ
Các ứng dụng được tải trước có thể tuỳ chỉnh trải nghiệm của mình cho chế độ minh hoạ bán lẻ bằng cách gọi API UserManager.isDemoUser()
để xem ứng dụng có được chạy trong môi trường minh hoạ hay không.
Một số quy định hạn chế được đặt trong người dùng minh hoạ, tương tự như các chính sách về hồ sơ hoặc thiết bị được quản lý 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 quy định hạn chế này, AccountManager và Settings sẽ không cho phép thêm tài khoản. Một số ứng dụng của Google sẽ phản ứng với quy định hạn chế này và hiển thị thông báo lỗi, còn một số ứng dụng khác sẽ không nhắc bạn nhập 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ý trường hợp tương ứng.
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ẽ được đặt thành tự động cập nhật qua mạng không dây (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ẻ
Để triển khai chế độ minh hoạ bán lẻ dựa trên chủ sở hữu thiết bị, bạn phải đặt ứng dụng Trình điều khiển chính sách thiết bị làm chủ sở hữu thiết bị. AOSP chứa một cách triển khai ứng dụng tham chiếu RetailDemo 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 trước 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 cấp phép. Các ứng dụng này 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:
Tất cả ứng dụng của chủ sở hữu thiết bị đều phải mở rộng thành phần DeviceAdminReceiver. Thành phần này đóng vai trò là mã uỷ quyền cho tất cả API DevicePolicyManager. Thành phần này phải có quyền
android.permission.BIND_DEVICE_ADMIN
, bao gồm các chính sách đặc biệt được yêu cầu dưới dạng siêu dữ liệu và lọc ý địnhandroid.app.action.PROFILE_PROVISIONING_COMPLETE
vàandroid.app.action.DEVICE_ADMIN_ENABLED
.Cờ DevicePolicyManager#MAKE_USER_DEMO được đặt để tạo người dùng loại bản minh hoạ đặc biệt là một API ẩn. Cờ này có giá trị hằng số 0x4.
Bạn chỉ được chỉ định quyền sở hữu thiết bị thông qua chủ sở hữu vai trò quản lý thiết bị hoặc ứng dụng ManagedProvisioning.
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ị. Một số hàm DevicePolicyManager áp dụng cho chế độ minh hoạ 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 của LockTask.
Cài đặt gói thông qua PackageInstaller.
Chặn việc 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 bản cập nhật OTA.
Tắt khoá phím.
Ngăn đặt mật khẩu hoặc vân tay.
Đặt một nhóm các chế độ cài đặt Settings.Global, Settings.Secure và Settings.System trong danh sách cho phép.
Đặt chính sách quyền thành
PERMISSION_POLICY_AUTO_GRANT
để tự động cấp tất cả quyền khi bắt đầu chạy. Bạn cũng có thể cấp quyền theo phạm vi hẹp hơn: một quyền cho một ứng dụng. Điều này không áp dụng cho các quyền thao tác ứng dụng mà người dùng vẫn phải cấp theo từng người dùng, từng ứng dụng.Đặt các hạn chế đối với 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 minh hoạ bằng cách sử dụng web
Ứng dụng RetailDemo trong /packages/apps/RetailDemo có thể 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 sử 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 sử dụng tài nguyên chuỗi dành riêng cho ngôn ngữ trong res/values-*/strings.xml. Ví dụ: nếu 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 tương ứng, 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>
Mỗi khi khởi động lại thiết bị, video này sẽ được tải xuống tối đa một lần. 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 tải xuống, video sẽ được dùng để phát trong tất cả các phiên minh hoạ sau này. Không có quy trình kiểm tra nào diễn ra lại 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ỳ trê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ẽ liên tục phát 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ề API Trình quản lý chính sách thiết bị và Ứng dụng mẫu dành cho Chủ sở hữu thiết bị để biết thêm thông tin.
Xác nhận kết quả
CTS không đề cập đến chế độ minh hoạ để 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 kiểm thử đơn vị cho ứng dụng minh hoạ.
Phiên minh hoạ
Thiết lập phiên minh hoạ
Thiết bị minh hoạ bán lẻ có thể khởi động vào 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.
Hình 2. Chế độ minh hoạ bán lẻ
Hiển thị phiên minh hoạ
Khi chuyển sang chế độ bán lẻ, thiết bị sẽ chuyển sang 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 đi phát lại video minh hoạ cho đến khi người dùng chạm vào màn hình để bắt đầu phiên người dùng minh hoạ. Tại thời điểm đó, trình chạy tuỳ chỉnh sẽ khởi động trình chạy hệ thống rồi thoát. Nhà sản xuất thiết bị gố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ẻ, tính năng bảo vệ khoá sẽ bị tắt và một số thao tác nhất định trong phần Cài đặt nhanh có thể ảnh hưởng bất lợi đến chế độ bán lẻ cũng sẽ bị cấm, 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 cũng bị chặn đối với một số chế độ cài đặt chung có thể ảnh hưởng đến chế độ bán lẻ bằng cách tắt các chế độ sau:
- Cài đặt Wi-Fi.
- Các tuỳ 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 (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ẽ xoá người dùng minh hoạ hiện tại, chuyển sang người dùng minh hoạ mới và lặp lại video gốc. 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 phiên minh hoạ, thiết bị sẽ tự tắt tiếng và đặt lại một số chế độ cài đặt chung, bao gồm:
- Độ 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 chế độ 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.