ב-Android 12 נוספה לאדמינים של IT האפשרות להשבית את העברת הנתונים באמצעות USB במכשירים בבעלות החברה (למעט פונקציית הטעינה). כדי לתמוך בפונקציונליות הזו, יצרני ציוד מקורי (OEM) צריכים לעדכן את USB HAL ולהשתמש בתמיכה הנוספת ב-API של Device Policy Manager.
מנהל מדיניות המכשיר
כדי לתמוך בהשבתת האיתות דרך USB, שלושת ממשקי ה-API הציבוריים הבאים נכללים ב-DevicePolicyManager:
-
setUsbDataSignalingEnabled(boolean enabled)הוא API שמאפשר להפעיל או להשבית את העברת הנתונים ב-USB באמצעות קריאה ל-enableUsbDataSignalAPI ב-UsbManager. -
canUsbDataSignalingBeDisabled()הוא API שבודק אם המכשיר תומך בהפעלה או בהשבתה של העברת נתונים דרך USB. -
isUsbDataSignalingEnabled()הוא API שבודק אם האות עם הנתונים מה-USB הופעל.- הדבר נדרש כדי לבדוק אם מוצג חלון של תיבת דו-שיח לשקיפות המדיניות. משתמשי מערכת יכולים לקרוא לגרסה מוסתרת של ממשק ה-API הזה, שמשתמש המערכת יכול לקרוא לה כדי לבדוק אם אותות נתונים ב-USB הופעלו עבור משתמש מסוים.
- מקישים על הגדרות.
- מקישים על מכשירים מחוברים.
- מקישים על 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 והן לא יופיעו בחלון 'מכשירים מחוברים'.
אם אדמין IT משבית את האפשרות להעברת נתונים ב-USB במכשיר שנמצא בבעלות החברה, המשתמש לא יכול לשנות את ההעדפות שלו לגבי USB. במקום זאת, כל ההעדפות של USB בהגדרות מושבתות לחלוטין, ויופיע חלון דו-שיח שקוף של מדיניות.
הערה: אם האות עם הנתונים מה-USB מושבת, האפשרויות 'ניפוי באגים ב-USB', 'הגדרות ברירת מחדל של USB' ו'העדפות ניתוב אודיו ב-USB' יושבתו באפשרויות למפתחים.