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ẻ. Các thiết bị được thiết lập để giới thiệu bán lẻ bằng ứng dụng của chủ sở hữu thiết bị nhằm đảm bảo việc sử dụng thiết bị chỉ được áp dụng cho 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ị giới thiệu 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 tốt hơn nhiều đối với chế độ bán lẻ tiêu chuẩn xét 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ị minh hoạ.
Mặc dù có thể sử dụng API DevicePolicyManager trên các phiên bản trước Android 8.1, nhưng bạn không thể tạo người dùng loại minh hoạ (DevicePolicyManager.MAKE_USER_DEMO
) bằng API createAndManageUser trong 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 THIẾT BỊ_BETA_MODE
Các thiết bị triển khai chế độ giới thiệu 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ế độ giới thiệu 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 Global.DEVICE_DEMO_MODE
cho chế độ cài đặt chung 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. Hệ thống
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 tùy chỉnh hoặc trình phát video
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 sẽ tìm một video trong phân vùng thiết bị, chẳng hạn như /data/Tải trướcs/demo/retail_demo.mp4 và phát video đó trong 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
được 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 cho bạn cách bắt đầu 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 các ứng dụng tải trước cho chế độ giới thiệu bán lẻ
Các ứng dụng tải sẵn có thể tuỳ chỉnh trải nghiệm 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ố 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 hạn chế này, AccountManager
và Cài đặt
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ị được đặt thành không dây (OTA) sẽ tự động cập nhật. 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 (tương ứng với ngưỡng pin) mà không cần người dùng phải 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 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 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ị phải mở rộng thành phần DeviceAdminReceiver, đóng vai trò là mã thông báo uỷ quyền cho tất cả cá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, đồng thời lọc cá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 minh hoạ đặc biệt, là một API bị ẩn. Cờ này có giá trị hằng số 0x4.
Bạn chỉ có thể 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 ManagedProvideing.
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ị. Dưới đây là danh sách 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 cho phép LockTask.
Cài đặt các 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 tính năng bảo vệ bàn phím.
Không cho phép đặt mật khẩu hoặc vân tay.
Đặt một nhóm 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 trong phạm vi hẹp hơn: một quyền duy nhất cho một ứng dụng. Quyền này không áp dụng cho các quyền quản lý ứng dụng mà người dùng vẫn phải cấp cho mỗi người dùng, cho từng ứng dụng.Đặt các quy định hạn chế người dùng liên quan đến chế độ bán lẻ như 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 ở những 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 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 Retail Demo sẽ tải xuống và bắt đầu phát video. Sau khi được tải xuống, video sẽ được dùng để phát trong tất cả các phiên minh hoạ về sau. 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 phần Định nghĩa dành cho 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 của 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 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ị giới thiệu bán lẻ có thể khởi động vào chế độ giới thiệu 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 họa
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.
- 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ờ, Mạng di động (các mục này sẽ 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, thì 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 màn hình 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 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 phần quản lý thiết bị, đồng thời đặt lại thiết bị về trạng thái ban đầu qua trình tải khởi động.