ב-Android 12 נוספה לאדמינים של IT האפשרות להשבית את העברת הנתונים באמצעות USB במכשירים בבעלות החברה (למעט פונקציית הטעינה). כדי לתמוך בפונקציונליות הזו, יצרני ציוד מקורי (OEM) צריכים לעדכן את ה-HAL של ה-USB ולהשתמש בתמיכה הנוספת ב-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' יושבתו באפשרויות למפתחים.