Android 12 đã bổ sung khả năng cho phép quản trị viên CNTT tắt tính năng báo hiệu dữ liệu qua USB trên các thiết bị thuộc sở hữu của công ty (ngoại trừ chức năng sạc). Để hỗ trợ chức năng này, OEM phải cập nhật USB HAL và sử dụng tính năng hỗ trợ bổ sung cho API Trình quản lý chính sách thiết bị.
Trình quản lý chính sách thiết bị
Để hỗ trợ việc tắt tính năng báo hiệu qua USB, 3 API công khai sau đây được đưa vào DevicePolicyManager:
setUsbDataSignalingEnabled(boolean enabled)là một API cho phép bật hoặc tắt tính năng báo hiệu dữ liệu qua USB bằng cách gọi APIenableUsbDataSignaltrongUsbManager.canUsbDataSignalingBeDisabled()là một API kiểm tra xem thiết bị có hỗ trợ việc bật hoặc tắt tính năng báo hiệu dữ liệu qua USB hay không.isUsbDataSignalingEnabled()là một API kiểm tra xem tính năng báo hiệu dữ liệu qua USB đã được bật hay chưa.- Bạn cần kiểm tra xem cửa sổ hộp thoại minh bạch về chính sách có xuất hiện hay không. Người dùng hệ thống có thể gọi một biến thể ẩn cho API cụ thể này. Biến thể này có thể được người dùng hệ thống gọi để kiểm tra xem tính năng báo hiệu dữ liệu qua USB đã được bật cho một người dùng cụ thể hay chưa.
- Nhấn vào Cài đặt.
- Nhấn vào Thiết bị đã kết nối.
- Nhấn vào USB.
Ví dụ về cách triển khai Trình quản lý chính sách thiết bị
Sau đây là ví dụ về cách triển khai Trình quản lý chính sách thiết bị.
class android.app.admin.DevicePolicyManager {
/**
* Called by device owner or profile owner of an organization-owned managed profile to
* enable or disable USB data signaling for the device. When disabled, USB data connections
* (except from charging functions) are prohibited.
*
* <p> This API is not supported on all devices, the caller should call
* {@link #canUsbDataSignalingBeDisabled()} to check whether enabling or disabling USB data
* signaling is supported on the device.
*
* @param enabled whether USB data signaling should be enabled or not.
* @throws SecurityException if the caller is not a device owner or a profile owner on
* an organization-owned managed profile.
* @throws IllegalStateException if disabling USB data signaling is not supported or
* if USB data signaling fails to be enabled/disabled.
*/
public void setUsbDataSignalingEnabled(boolean enabled);
/**
* Called by device owner or profile owner of an organization-owned managed profile to return
* whether USB data signaling is currently enabled by the admin.
*
* @return {@code true} if USB data signaling is enabled, {@code false} otherwise.
*/
public boolean isUsbDataSignalingEnabled();
/**
* Called by the system to check whether USB data signaling is currently enabled for this user.
*
* @param userId which user to check for.
* @return {@code true} if USB data signaling is enabled, {@code false} otherwise.
* @hide
*/
public boolean isUsbDataSignalingEnabledForUser(@UserIdInt int userId);
/**
* Returns whether enabling or disabling USB data signaling is supported on the device.
*
* @return {@code true} if the device supports enabling and disabling USB data signaling.
*/
public boolean canUsbDataSignalingBeDisabled();
Cài đặt
Người dùng có thể sửa đổi chế độ ưu tiên USB và chế độ cài đặt chia sẻ Internet ngay sau khi kết nối USB. Để truy cập vào màn hình chế độ ưu tiên USB, hãy làm như sau:
Lưu ý: Nếu chưa kết nối USB, bạn sẽ không thể sửa đổi chế độ ưu tiên USB và chế độ này sẽ không xuất hiện trong cửa sổ Thiết bị đã kết nối.
Nếu quản trị viên CNTT tắt tính năng báo hiệu dữ liệu qua USB trên thiết bị thuộc sở hữu của công ty, thì người dùng sẽ không thể sửa đổi chế độ ưu tiên USB. Thay vào đó, tất cả chế độ ưu tiên USB trong phần Cài đặt đều bị tắt hoàn toàn, tạo ra một cửa sổ hộp thoại minh bạch về chính sách.
Lưu ý: Nếu tính năng báo hiệu dữ liệu qua USB bị tắt, thì tính năng gỡ lỗi USB, cấu hình USB mặc định và chế độ ưu tiên định tuyến âm thanh qua USB sẽ bị tắt trong các lựa chọn dành cho nhà phát triển.