سیگنال دهی از طریق USB را غیرفعال کنید

اندروید 12 این قابلیت را برای مدیران فناوری اطلاعات اضافه کرده است که سیگنال دهی از طریق USB را در دستگاه های متعلق به شرکت (به جز عملکرد شارژ) غیرفعال کنند. به منظور پشتیبانی از این عملکرد، OEM ها باید USB HAL خود را به روز کنند و از پشتیبانی اضافه شده برای Device Policy Manager API ها استفاده کنند.

مدیر سیاست دستگاه

برای پشتیبانی از غیرفعال کردن سیگنال دهی از طریق USB، سه API عمومی زیر در DevicePolicyManager گنجانده شده است:

  • setUsbDataSignalingEnabled(boolean enabled) یک API است که سیگنال دهی USB را با فراخوانی enableUsbDataSignal API در UsbManager فعال یا غیرفعال می کند.
  • canUsbDataSignalingBeDisabled() یک API است که بررسی می کند فعال یا غیرفعال کردن سیگنالینگ داده USB در دستگاه پشتیبانی می شود.
  • isUsbDataSignalingEnabled() یک API است که بررسی می کند سیگنالینگ داده USB فعال شده است یا خیر.
    • برای بررسی اینکه آیا پنجره گفتگوی شفافیت خط مشی نشان داده شده است یا خیر، لازم است. کاربران سیستم می توانند یک نوع مخفی را برای این API خاص فراخوانی کنند که می تواند توسط کاربر سیستم فراخوانی شود تا بررسی کند که آیا سیگنال دهی 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، موارد زیر را انجام دهید:

    1. روی تنظیمات ضربه بزنید.
    2. روی دستگاه‌های متصل ضربه بزنید.
    3. روی USB ضربه بزنید.

    توجه: اگر USB متصل نباشد، تنظیمات برگزیده USB قابل تغییر نیستند و در پنجره دستگاه‌های متصل ظاهر نمی‌شوند.

    اگر یک سرپرست فناوری اطلاعات سیگنالینگ داده USB را در یک دستگاه متعلق به شرکت غیرفعال کند، کاربر نمی‌تواند تنظیمات برگزیده USB خود را تغییر دهد. در عوض، همه تنظیمات برگزیده USB در تنظیمات کاملاً غیرفعال هستند، که یک پنجره گفتگوی شفافیت خط مشی ایجاد می کند.

    توجه: اگر سیگنال دهی USB غیرفعال باشد، اشکال زدایی USB، تنظیمات پیش فرض USB و تنظیمات برگزیده مسیریابی صوتی USB همگی در گزینه های توسعه دهنده غیرفعال می شوند.