Home> BLOG

Thiết lập chế độ kiosk trên Android: Cần làm gì khi chủ sở hữu thiết bị khóa bạn khỏi Cài đặt

2026-09-11 09:09:05
Thiết lập chế độ kiosk trên Android: Cần làm gì khi chủ sở hữu thiết bị khóa bạn khỏi Cài đặt

Amáy tính bảng Android 10,1 inch đã được cấu hình để sử dụng ở chế độ kiosk với ADB, trình khởi chạy tùy chỉnh và quyền Chủ sở hữu thiết bị. Sau khi khởi động lại, ứng dụng khởi chạy đúng như mong đợi, nhưng thiết bị không còn truy cập được vào giao diện Cài đặt Android thông thường.

Điều này tạo ra một thách thức phổ biến trong triển khai kiosk: sau khi các điều khiển điều hướng hệ thống và quản lý thiết bị đã bị hạn chế, làm thế nào để khôi phục máy tính bảng nhằm tiếp tục kiểm thử? Và nếu ứng dụng cần mở Wi-Fi hoặc các chức năng hệ thống khác, thì những Intent Android nào vẫn có thể sử dụng?

Khách hàng đầu tiên sử dụng các lệnh ADB để sửa đổi hành vi giao diện người dùng hệ thống:

adb shell settings put system hide_navbar 1

adb shell settings put system statusbar_disp 1

adb shell settings put system swipe_show_nav_bar 0

adb shell settings put system power_button_show 0

Sau đó, ứng dụng được đặt làm màn hình Trang chủ mặc định, tiếp theo là cấu hình ứng dụng với tư cách là Chủ sở hữu thiết bị để kích hoạt các chức năng quản lý thiết bị cần thiết.

Sau khi khởi động lại, Máy tính bảng Android ở chế độ kiosk tự động khởi chạy ứng dụng như mong đợi. Tuy nhiên, khách hàng không thể thoát khỏi màn hình chính của ứng dụng để truy cập Cài đặt Android hoặc các chức năng hệ thống khác. Các nút Cài đặt và Wi-Fi được tích hợp trong ứng dụng cũng ngừng mở các trang hệ thống tương ứng.

Câu hỏi cấp bách lúc đó không chỉ đơn thuần là làm cách nào để thoát khỏi ứng dụng. Khách hàng cần một phương pháp đáng tin cậy nhằm khôi phục lại Máy tính bảng android máy tính bảng để tiếp tục kiểm thử, đồng thời muốn hiểu rõ những Intent hệ thống nào có thể được ứng dụng của họ sử dụng.

Tại sao máy tính bảng Android trở nên khó truy cập

Sự cố phát sinh do nhiều lớp kiểm soát thiết bị được áp dụng đồng thời.

Trình khởi chạy tùy chỉnh xác định ứng dụng nào xuất hiện dưới dạng màn hình Chính, trong khi Chủ sở hữu thiết bị cấp cho ứng dụng quyền kiểm soát chính sách thiết bị rộng hơn nhiều. Tài liệu dành riêng cho thiết bị Android hỗ trợ kiểu cấu hình này cho các triển khai thiết bị chuyên dụng (kiosk) và thiết bị được quản lý, bao gồm cả việc kiểm soát ứng dụng Chính mặc định và hạn chế truy cập vào các chức năng hệ thống.

Các lệnh ADB thêm một lớp khác bằng cách thay đổi hành vi giao diện người dùng hệ thống. Các thiết lập cụ thể này phụ thuộc vào thiết bị hoặc firmware chứ không phải là các API Android phổ quát, do đó hiệu quả chính xác của chúng phụ thuộc vào cách firmware máy tính bảng triển khai chúng.

Điều này có nghĩa là một Máy tính bảng Android được sử dụng làm thiết bị kiosk có thể trở nên khó khôi phục khi trình khởi chạy, cấu hình Chủ sở hữu thiết bị, các hạn chế giao diện người dùng hệ thống và điều hướng ứng dụng đều bị thay đổi đồng thời.

Việc nút Cài đặt hoặc Wi-Fi của ứng dụng không còn hoạt động không nhất thiết có nghĩa là Intent đó bị sai. Hoạt động Cài đặt (Settings Activity) đích có thể không khả dụng, bị hạn chế hoặc không thể truy cập do cấu hình hiện tại của thiết bị. Android cũng khuyến nghị kiểm tra xem Intent có thể được phân giải hay không trước khi cố gắng khởi chạy nó.

2开发场景图.png

Các phương án khôi phục cho máy tính bảng Android dạng kiosk bị khóa

Nếu ứng dụng đã được cấu hình làm Chủ sở hữu thiết bị (Device Owner), thì trước tiên nên cân nhắc phương án khôi phục dựa trên phần mềm.

Android DevicePolicyManager cung cấp các chức năng quản lý thiết bị mà Chủ sở hữu thiết bị có thể sử dụng. Tùy thuộc vào phiên bản Android và cấu hình ứng dụng, một ứng dụng Chủ sở hữu thiết bị có thể sử dụng cơ chế xóa dữ liệu phù hợp để đưa máy tính bảng trở về trạng thái sạch nhằm phục vụ kiểm thử. wipeData() là API tiêu chuẩn để xóa dữ liệu người dùng, trong khi các phiên bản Android mới hơn cung cấp thêm các chức năng xóa thiết bị.

Hàm đã lỗi thời clearDeviceOwnerApp() phương pháp này không nên được coi là phương pháp khôi phục sản xuất chung. Android ghi tài liệu về nó như một API hướng kiểm thử và khuyến nghị đặt lại nhà máy là cách thông thường để xóa mối quan hệ Device Owner.

ADB cũng cung cấp các lệnh quản lý chính sách thiết bị, nhưng những lệnh này có hạn chế. Ví dụ, adb shell dpm remove-active-admin không phải là phương pháp phổ quát để xóa Device Owner; tài liệu ADB của Android quy định các yêu cầu như khai báo testOnly của ứng dụng.

Nếu khôi phục phần mềm không khả dụng do ứng dụng không thể thực hiện thao tác yêu cầu, phương án còn lại là đặt lại nhà máy phần cứng hoặc quy trình khôi phục Android .

3流程图.png

Tổ hợp phím chính xác không nên được suy diễn từ mẫu máy tính bảng Android khác. Hành vi khôi phục được xác định bởi phần mềm cơ bản và triển khai phần cứng của máy tính bảng. Đối với dự án máy tính bảng Android tùy chỉnh, quy trình khôi phục phù hợp do đó cần được xác nhận cho mẫu thực tế và phần mềm cơ bản trước khi triển khai.

Đối với loại Máy tính bảng Android ở chế độ kiosk , việc có một phương pháp khôi phục được xác định rõ là đặc biệt hữu ích trong quá trình kiểm thử tích hợp vì cấu hình ở cấp hệ thống có thể cố ý loại bỏ khả năng điều hướng thông thường của người dùng.

Kiểm thử các Mục đích Cài đặt và Các Chức năng Hệ thống trên Máy tính bảng Android

Câu hỏi thứ hai của khách hàng là liệu ứng dụng có thể khởi chạy trực tiếp các chức năng hệ thống như Cài đặt và Wi-Fi hay không.

Android cung cấp các hành động Cài đặt tiêu chuẩn cho những chức năng này. Ví dụ:

Chức năng

Mục đích Android Tiêu chuẩn

Cài đặt Chính

Settings.ACTION_SETTINGS

Cài đặt Wi-Fi

Settings.ACTION_WIFI_SETTINGS

Cài đặt không dây

Settings.ACTION_WIRELESS_SETTINGS

Cài đặt Bluetooth

Settings.ACTION_BLUETOOTH_SETTINGS

Cài đặt màn hình

Settings.ACTION_DISPLAY_SETTINGS

Cài đặt Vị trí

Settings.ACTION_LOCATION_SOURCE_SETTINGS

Cài đặt Âm thanh

Settings.ACTION_SOUND_SETTINGS

Cài đặt Bảo mật

Settings.ACTION_SECURITY_SETTINGS

Cài đặt Ứng dụng

Settings.ACTION_APPLICATION_SETTINGS

Cài đặt ứng dụng cụ thể

Settings.ACTION_APPLICATION_DETAILS_SETTINGS

 

Đây là các hành động Cài đặt Android tiêu chuẩn thay vì các giao diện dành riêng cho một nhà sản xuất máy tính bảng Android cụ thể . Tuy nhiên, việc tồn tại một Intent không đảm bảo rằng nó sẽ mở thành công trên mọi thiết bị hoặc trong mọi cấu hình kiosk. Android khuyến nghị kiểm tra Intent bằng phương thức trước khi khởi chạy nó. resolveActivity() . Đối với máy tính bảng Android được tích hợp hệ thống, việc kiểm tra Intent do đó cần được thực hiện trên firmware và phiên bản Android thực tế đang được sử dụng để triển khai. Kiểm tra cần xác minh không chỉ việc Intent có tồn tại hay không, mà còn việc Activity tương ứng có thể được truy cập sau khi đã áp dụng các hạn chế từ Device Owner, trình khởi chạy (launcher) và giao diện người dùng hệ thống (system UI).

For a system-integrated Android tablet, Intent testing should therefore be performed on the actual firmware and Android version being used for deployment. The test should verify not only whether the Intent exists, but also whether the corresponding Activity can be reached after Device Owner, launcher and system UI restrictions have been applied.

4流程图(1).png

Nếu bạn đang triển khai dự án máy tính bảng kiosk chạy Android hoặc tích hợp hệ thống và cần hỗ trợ khôi phục chế độ Device Owner, các Intent cài đặt (Settings Intents) hoặc các vấn đề cấu hình liên quan, vui lòng liên hệ với chúng tôi kèm theo mẫu máy tính bảng và phiên bản Android bạn đang sử dụng. Chúng tôi sẽ trao đổi về các tùy chọn hỗ trợ kỹ thuật và tùy chỉnh khả dụng.

 

Nguyên tắc tương tự cũng áp dụng cho các chức năng hệ thống khác. Một API chuẩn của Android có thể tồn tại, nhưng hành vi thực tế trên máy tính bảng đã được tùy chỉnh lại phụ thuộc vào phiên bản Android, cấu hình firmware và các chính sách quản lý thiết bị.

Còn yêu cầu đánh thức (wake requests) thì sao?

Câu hỏi của khách hàng về ‘yêu cầu đánh thức’ (wake requests) hơi khác so với việc mở một trang Cài đặt.

Intent.ACTION_SCREEN_ON là một thông báo phát sóng hệ thống (system broadcast) cho biết màn hình đã trở nên tương tác. Đây là một thông báo phát sóng hệ thống được bảo vệ, do đó ứng dụng không nên coi nó như một Intent thông thường mà ứng dụng có thể đơn giản gửi đi để đánh thức máy tính bảng.

Nếu yêu cầu là đánh thức màn hình, giữ màn hình ở trạng thái bật (keep screen awake) hoặc kiểm soát hành vi bật màn hình , cơ chế phù hợp phụ thuộc vào yêu cầu ứng dụng cụ thể. Android cung cấp các API quản lý năng lượng và cửa sổ/hoạt động cho các tình huống này, bao gồm PowerManager và chức năng khóa đánh thức (wake-lock) khi thích hợp.

Sự phân biệt này rất quan trọng khi phát triển ứng dụng cho một Máy tính bảng Android ở chế độ kiosk . “Khởi chạy một chức năng hệ thống” và “điều khiển trạng thái năng lượng của thiết bị” là hai thao tác hệ thống khác nhau và cần được xử lý thông qua các API riêng biệt.

5具体场景ui图.png

Hỗ trợ kỹ thuật cho việc tích hợp máy tính bảng Android

Trường hợp này cũng cho thấy tại sao việc triển khai theo mô hình kiosk có thể đòi hỏi nhiều hơn chỉ cấu hình phần cứng cơ bản của một máy tính bảng Android.

Khi một máy tính bảng được tích hợp vào một ứng dụng chuyên dụng, hệ thống POS, kiosk, hệ thống công nghiệp hoặc thiết bị được quản lý khác, cấu hình phần mềm có thể đồng thời liên quan đến trình khởi chạy (launcher), chủ sở hữu thiết bị (Device Owner), giao diện người dùng hệ thống (system UI), quyền ứng dụng, các ý định cài đặt (Settings Intents) và hành vi khôi phục (recovery behavior).

Đối với các dự án yêu cầu máy tính bảng Android tùy chỉnh các cấu hình, những yêu cầu này cần được đánh giá cùng với cấu hình phần cứng và hệ thống Android thay vì xử lý như các vấn đề riêng biệt trong giai đoạn kiểm thử cuối cùng.

Giải pháp phù hợp phụ thuộc vào phiên bản Android, firmware máy tính bảng, cấu hình ứng dụng và các chức năng mà nhà tích hợp hệ thống cần kiểm soát. Tài liệu kỹ thuật cũng có thể được soạn thảo dựa trên các giao diện hệ thống sẵn có, Intent được hỗ trợ, quyền truy cập và các hạn chế đặc thù theo thiết bị.

Nếu bạn đang kiểm thử một Máy tính bảng android máy tính bảng dành cho triển khai kiosk hoặc tích hợp hệ thống và gặp phải các sự cố tương tự liên quan đến Chủ sở hữu thiết bị (Device Owner), trình khởi chạy tùy chỉnh (custom launchers), chế độ kiosk, Intent Cài đặt (Settings Intents), giới hạn giao diện người dùng hệ thống (system UI restrictions) hoặc khôi phục thiết bị (device recovery) , Xin vui lòng liên hệ với chúng tôi để được hỗ trợ kỹ thuật .

Bạn có thể cung cấp mẫu máy tính bảng, phiên bản Android, cấu hình triển khai và chức năng cụ thể mà bạn đang cố gắng triển khai. Sau đó, chúng ta có thể thảo luận về các Tùy chỉnh máy tính bảng Android và hỗ trợ kỹ thuật các lựa chọn cho dự án của bạn.