Tắt tính năng truyền tín hiệu dữ liệu qua USB

Android 12 đã thêm tính năng giúp quản trị viên CNTT tắt tính năng tín hiệu dữ liệu qua USB trên thiết bị của công ty (ngoại trừ chức năng sạc). Để hỗ trợ chức năng này, nhà sản xuất thiết bị gốc (OEM) phải cập nhật HAL USB 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, DevicePolicyManager bao gồm 3 API công khai sau:

  • setUsbDataSignalingEnabled(boolean enabled) là một API bật hoặc tắt tín hiệu dữ liệu USB bằng cách gọi hàm API enableUsbDataSignal trong UsbManager.
  • canUsbDataSignalingBeDisabled() là một API kiểm tra xem việc bật hoặc tắt tính năng báo hiệu dữ liệu USB có được hỗ trợ trên thiết bị hay không.
  • isUsbDataSignalingEnabled() là một API kiểm tra xem tín hiệu dữ liệu USB đã được bật hay chưa.
    • Bạn cần làm như vậy để kiểm tra xem hộp thoại về tính minh bạch của chính sách có xuất hiện hay không cửa sổ hiện ra. Người dùng hệ thống có thể gọi một biến thể ẩn cho API cụ thể này mà người dùng hệ thống có thể gọi để kiểm tra xem tín hiệu dữ liệu USB đã được bật hay chưa cho một người dùng cụ thể.
  • 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ế độ cài đặt ưu tiên USB và chế độ chia sẻ Internet ngay khi kết nối USB. Để truy cập vào màn hình lựa chọn ưu tiên về USB, hãy làm như sau:

    1. Nhấn vào Cài đặt.
    2. Nhấn vào Thiết bị đã kết nối.
    3. Nhấn vào USB.

    Lưu ý: Nếu USB không được kết nối, bạn sẽ không thể chỉnh sửa các tuỳ chọn USB và các tuỳ chọn 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ín hiệu dữ liệu USB trên thiết bị thuộc sở hữu của công ty, thì người dùng không thể sửa đổi tùy chọn USB của họ. Thay vào đó, tất cả các tuỳ chọn USB trong Phần Cài đặt bị tắt hoàn toàn, do đó sẽ tạo ra một chính sách cửa sổ hộp thoại trong suốt.

    Lưu ý: Nếu tín hiệu dữ liệu USB bị tắt, thì chế độ gỡ lỗi qua USB, sẽ là chế độ mặc định Cấu hình USB và lựa chọn ưu tiên về định tuyến âm thanh USB đều sẽ bị tắt trong tuỳ chọn cho nhà phát triển.