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