Wyłącz sygnalizowanie danych przez USB

W Androidzie 12 dodano możliwość wyłączenia sygnalizacji danych przez USB na urządzeniach należących do firmy (z wyjątkiem funkcji ładowania). Aby umożliwić obsługę tej funkcji, producenci OEM muszą zaktualizować swoje USB HAL i korzystać z dodanej obsługi interfejsów API menedżera zasad dotyczących urządzeń.

Menedżer zasad dotyczących urządzeń

Aby umożliwić wyłączenie sygnalizacji przez USB, w DevicePolicyManager uwzględniono te 3 publiczne interfejsy API:

  • setUsbDataSignalingEnabled(boolean enabled) to interfejs API, który włącza lub wyłącza sygnalizację danych USB przez wywołanie interfejsu API enableUsbDataSignalUsbManager.
  • 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 konkretnego 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.
  • 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łączysz kabel USB. Aby otworzyć ekran ustawień USB:

    1. Wybierz Ustawienia.
    2. Kliknij Połączone urządzenia.
    3. Kliknij 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 sygnalizowanie danych USB na urządzeniu należącym do firmy, użytkownik nie będzie mógł 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 sygnalizacja danych USB jest wyłączona, w opcjach dla deweloperów zostaną wyłączone debugowanie USB, domyślne konfiguracje USB i ustawienia kierowania dźwięku USB.