Disattivare l'indicatore di dati tramite USB

Android 12 ha aggiunto la possibilità per gli amministratori IT di disattivare la segnalazione dei dati tramite USB sui dispositivi di proprietà aziendale (ad eccezione della funzione di ricarica). Per supportare questa funzionalità, gli OEM devono aggiornare la propria HAL USB e utilizzare il supporto aggiunto per le API Device Policy Manager.

Device Policy Manager

Per supportare la disattivazione della segnalazione tramite USB, in DevicePolicyManager sono incluse le seguenti tre API pubbliche:

  • setUsbDataSignalingEnabled(boolean enabled) è un'API che attiva o disattiva la segnalazione dei dati USB chiamando l'API enableUsbDataSignal in UsbManager.
  • canUsbDataSignalingBeDisabled() è un'API che verifica se l'attivazione o la disattivazione della segnalazione di dati USB è supportata sul dispositivo.
  • isUsbDataSignalingEnabled() è un'API che verifica se la segnalazione di dati USB è stata abilitata.
    • Questo è necessario per verificare se viene visualizzata o meno una finestra di dialogo sulla trasparenza delle norme. Gli utenti di sistema possono chiamare una variante nascosta per questa API specifica che può essere chiamata dall'utente di sistema per verificare se la segnalazione dei dati USB è stata attivata per un determinato utente.
  • Esempio di implementazione di Device Policy Manager

    Di seguito è riportato un esempio di come implementare 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();

    Impostazioni

    Gli utenti possono modificare le impostazioni di tethering e le preferenze USB non appena la connessione USB è stabilita. Per accedere alla schermata delle preferenze USB:

    1. Tocca Impostazioni.
    2. Tocca Dispositivi connessi.
    3. Tocca USB.

    Nota: se la connessione USB non è attiva, le preferenze USB non possono essere modificate e non vengono visualizzate nella finestra Dispositivi connessi.

    Se un amministratore IT disattiva la segnalazione dei dati USB su un dispositivo di proprietà aziendale, l'utente non può modificare le preferenze USB. Invece, tutte le preferenze USB in Impostazioni sono completamente disattivate, il che creerà una finestra di dialogo di trasparenza dei criteri.

    Nota:se la segnalazione di dati USB è disattivata, il debug USB, le configurazioni USB predefinite e le preferenze di routing audio USB verranno disattivati nelle opzioni sviluppatore.