W Androidzie 12 administratorzy IT mogą wyłączyć sygnalizowanie danych przez USB na urządzeniach należących do firmy (z wyjątkiem funkcji ładowania). Aby obsługiwać tę funkcję, producenci OEM muszą zaktualizować interfejs HAL USB i wykorzystać dodatkową obsługę interfejsów API Device Policy Manager.
Menedżer zasad dotyczących urządzeń
Aby ułatwić wyłączanie sygnalizacji przez USB, w
DevicePolicyManager
:
setUsbDataSignalingEnabled(boolean enabled)
to interfejs API, który włącza lub wyłącza sygnalizację danych USB przez wywołanie interfejsu APIenableUsbDataSignal
wUsbManager
.canUsbDataSignalingBeDisabled()
to interfejs API, który sprawdza, czy na urządzeniu jest obsługiwane włączanie lub wyłączanie sygnalizacji danych USB.isUsbDataSignalingEnabled()
to interfejs API, który sprawdza, czy włączono sygnalizację danych USB.- Jest to konieczne, aby sprawdzić, czy wyświetla się okno zasad przejrzystości. Użytkownicy systemu mogą wywołać ukryty wariant tego interfejsu API, który może być wywoływany przez użytkownika systemu w celu sprawdzenia, czy dla danego użytkownika włączone jest sygnalizowanie danych przez USB.
- Wybierz Ustawienia.
- Kliknij Połączone urządzenia.
- Kliknij USB.
Przykład implementacji menedżera zasad dotyczących urządzeń
Poniższy przykład ilustruje, jak wdrożyć Menedżera zasad dotyczących urządzeń.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();
Ustawienia
Użytkownicy mogą zmienić ustawienia USB i tetheringu, gdy tylko podłączy się urządzenie USB. Aby otworzyć ekran ustawień USB:
Uwaga: jeśli urządzenie USB nie jest podłączone, nie można modyfikować ustawień USB, a ustawienia te nie będą widoczne w oknie Urządzenia połączone.
Jeśli administrator IT wyłączy sygnał danych USB na urządzeniu należącym do firmy, nie może zmienić ustawień USB. Zamiast tego wszystkie ustawienia USB w sekcji Ustawienia są całkowicie wyłączone, co spowoduje wyświetlenie okna z informacjami o zasadach.
Uwaga: jeśli sygnalizowanie danych przez USB jest wyłączone, debugowanie USB jest domyślnie wyłączone. Konfiguracje USB i ustawienia routingu dźwięku USB zostaną wyłączone w opcje programisty.