اندروید ۱۲ این قابلیت را برای مدیران فناوری اطلاعات فراهم کرده است که سیگنالدهی داده از طریق USB را در دستگاههای متعلق به شرکتها غیرفعال کنند (به جز عملکرد شارژ). برای پشتیبانی از این قابلیت، تولیدکنندگان اصلی تجهیزات (OEM) باید USB HAL خود را بهروزرسانی کرده و از پشتیبانی اضافه شده برای APIهای مدیریت سیاست دستگاه (Device Policy Manager) استفاده کنند.
مدیر سیاست دستگاه
برای پشتیبانی از غیرفعال کردن سیگنالینگ از طریق USB، سه API عمومی زیر در DevicePolicyManager گنجانده شدهاند:
-
setUsbDataSignalingEnabled(boolean enabled)یک API است که با فراخوانیenableUsbDataSignalAPI درUsbManagerسیگنالینگ داده USB را فعال یا غیرفعال میکند. -
canUsbDataSignalingBeDisabled()یک API است که بررسی میکند آیا فعال یا غیرفعال کردن سیگنالینگ داده USB در دستگاه پشتیبانی میشود یا خیر. -
isUsbDataSignalingEnabled()یک API است که بررسی میکند آیا سیگنالینگ دادهی USB فعال شده است یا خیر.- این برای بررسی اینکه آیا پنجره محاورهای شفافیت سیاست نمایش داده میشود یا خیر، لازم است. کاربران سیستم میتوانند یک نوع پنهان برای این API خاص را فراخوانی کنند که میتواند توسط کاربر سیستم فراخوانی شود تا بررسی کند که آیا سیگنالینگ داده USB برای یک کاربر خاص فعال شده است یا خیر.
- روی تنظیمات ضربه بزنید.
- روی دستگاههای متصل ضربه بزنید.
- روی یو اس بی ضربه بزنید.
مثال پیادهسازی مدیریت سیاست دستگاه
در ادامه مثالی از نحوه پیادهسازی 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، همگی در گزینههای توسعهدهنده غیرفعال خواهند شد.