ปิดใช้การส่งสัญญาณข้อมูลผ่าน USB

Android 12 เพิ่มความสามารถในการปิดใช้การส่งสัญญาณข้อมูลผ่าน USB ในอุปกรณ์ของบริษัท (ยกเว้นฟังก์ชันการชาร์จ) ให้แก่ผู้ดูแลระบบไอที OEM ต้องอัปเดต HAL ของ USB และใช้การรองรับที่เพิ่มเข้ามาสำหรับ Device Policy Manager API เพื่อรองรับฟังก์ชันการทำงานนี้

ตัวจัดการนโยบายด้านอุปกรณ์

เพื่อรองรับการปิดการส่งสัญญาณผ่าน USB เราได้รวม API สาธารณะ 3 รายการต่อไปนี้ไว้ใน DevicePolicyManager:

  • setUsbDataSignalingEnabled(boolean enabled) เป็น API ที่เปิดหรือปิดใช้การส่งสัญญาณข้อมูล USB โดยการเรียกใช้ enableUsbDataSignal API ใน UsbManager
  • canUsbDataSignalingBeDisabled() คือ API ที่ตรวจสอบว่าอุปกรณ์รองรับการเปิดหรือปิดใช้การส่งสัญญาณข้อมูล USB หรือไม่
  • isUsbDataSignalingEnabled() คือ API ที่ตรวจสอบว่ามีการเปิดใช้การส่งสัญญาณข้อมูล USB หรือไม่
    • ขั้นตอนนี้จําเป็นต่อการตรวจสอบว่าระบบจะแสดงกล่องโต้ตอบความโปร่งใสของนโยบายหรือไม่ ผู้ใช้ระบบสามารถเรียกใช้ตัวแปรที่ซ่อนอยู่สำหรับ API เฉพาะนี้ ซึ่ง ผู้ใช้ระบบสามารถโทรหาเพื่อตรวจสอบว่าการส่งสัญญาณข้อมูล USB เปิดอยู่หรือไม่ สำหรับผู้ใช้รายหนึ่งๆ
  • ตัวอย่างการติดตั้งใช้งานตัวจัดการนโยบายด้านอุปกรณ์

    ตัวอย่างวิธีใช้ตัวจัดการนโยบายด้านอุปกรณ์มีดังนี้
    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();

    การตั้งค่า

    ผู้ใช้สามารถแก้ไขการตั้งค่า USB และการตั้งค่าการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือได้ทันทีที่ USB เชื่อมต่อ แล้ว หากต้องการเข้าถึงหน้าจอค่ากำหนด USB ให้ทำดังนี้

    1. แตะการตั้งค่า
    2. แตะอุปกรณ์ที่เชื่อมต่อ
    3. แตะ USB

    หมายเหตุ: หากไม่ได้เชื่อมต่อ USB ไว้ ค่ากำหนด USB จะไม่สามารถ และจะไม่ปรากฏในหน้าต่างอุปกรณ์ที่เชื่อมต่อ

    หากผู้ดูแลระบบไอทีปิดใช้การส่งสัญญาณข้อมูล USB ในอุปกรณ์ของบริษัท ไม่สามารถแก้ไขค่ากำหนด USB ได้ แต่ระบบจะปิดใช้ค่ากำหนด USB ทั้งหมดในการตั้งค่าแทน ซึ่งจะสร้างหน้าต่างกล่องโต้ตอบความโปร่งใสของนโยบาย

    หมายเหตุ: หากปิดใช้การส่งสัญญาณข้อมูล USB อยู่ การแก้ไขข้อบกพร่อง USB โดยค่าเริ่มต้น การกำหนดค่า USB และค่ากำหนดการกำหนดเส้นทางเสียง USB จะถูกปิดใช้งานทั้งหมดใน สำหรับนักพัฒนาซอฟต์แวร์