Android 12 ได้เพิ่มความสามารถให้ผู้ดูแลระบบไอทีปิดใช้การส่งสัญญาณข้อมูลผ่าน USB ในอุปกรณ์ของบริษัท (ยกเว้นฟังก์ชันการชาร์จ) OEM ต้องอัปเดต USB HAL และใช้การรองรับเพิ่มเติมสำหรับ Device Policy Manager API เพื่อรองรับฟังก์ชันการทำงานนี้
Device Policy Manager
API สาธารณะ 3 รายการต่อไปนี้รวมอยู่ใน DevicePolicyManager เพื่อรองรับการปิดใช้การส่งสัญญาณผ่าน USB
setUsbDataSignalingEnabled(boolean enabled)เป็น API ที่เปิดหรือปิดใช้การส่งสัญญาณข้อมูล USB โดยการเรียก APIenableUsbDataSignalในUsbManagercanUsbDataSignalingBeDisabled()เป็น API ที่ตรวจสอบว่าอุปกรณ์รองรับการเปิดหรือปิดใช้การส่งสัญญาณข้อมูล USB หรือไม่isUsbDataSignalingEnabled()เป็น API ที่ตรวจสอบว่ามีการเปิดใช้การส่งสัญญาณข้อมูล USB หรือไม่- จำเป็นต้องใช้ API นี้เพื่อตรวจสอบว่ามีการแสดงหน้าต่างกล่องโต้ตอบความโปร่งใสของนโยบายหรือไม่ ผู้ใช้ระบบสามารถเรียกตัวแปรที่ซ่อนไว้สำหรับ API นี้ได้ ซึ่งผู้ใช้ระบบสามารถเรียกเพื่อตรวจสอบว่ามีการเปิดใช้การส่งสัญญาณข้อมูล USB สำหรับผู้ใช้รายใดรายหนึ่งหรือไม่
- แตะการตั้งค่า
- แตะอุปกรณ์ที่เชื่อมต่อ
- แตะ USB
ตัวอย่างการใช้งาน Device Policy Manager
ตัวอย่างต่อไปนี้แสดงวิธีใช้งาน Device Policy Manager
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 หากต้องการเข้าถึงหน้าจอการตั้งค่า USB ให้ทำดังนี้
หมายเหตุ: หากไม่ได้เชื่อมต่อ USB คุณจะแก้ไขการตั้งค่า USB ไม่ได้ และการตั้งค่า USB จะไม่ปรากฏในหน้าต่างอุปกรณ์ที่เชื่อมต่อ
หากผู้ดูแลระบบไอทีปิดใช้การส่งสัญญาณข้อมูล USB ในอุปกรณ์ของบริษัท ผู้ใช้จะแก้ไขการตั้งค่า USB ไม่ได้ แต่การตั้งค่า USB ทั้งหมดในการตั้งค่า จะถูกปิดใช้โดยสมบูรณ์ ซึ่งจะสร้างหน้าต่างกล่องโต้ตอบความโปร่งใสของนโยบาย
หมายเหตุ: หากปิดใช้การส่งสัญญาณข้อมูล USB การแก้ไขข้อบกพร่อง USB, การกำหนดค่า USB เริ่มต้น และการตั้งค่าการกำหนดเส้นทางเสียง USB จะถูกปิดใช้ทั้งหมดในตัวเลือกสำหรับนักพัฒนาแอป