Désactiver la signalisation des données via USB

Android 12 a ajouté la possibilité pour les administrateurs informatiques de désactiver la signalisation des données via USB sur les appareils appartenant à l'entreprise (à l'exception de la fonction de chargement). Afin de prendre en charge cette fonctionnalité, les OEM doivent mettre à jour leur USB HAL et utiliser la prise en charge supplémentaire des API Device Policy Manager.

Gestionnaire de règles relatives aux appareils

Pour prendre en charge la désactivation de la signalisation via USB, les trois API publiques suivantes sont incluses dans DevicePolicyManager :

  • setUsbDataSignalingEnabled(boolean enabled) est une API qui active ou désactive la signalisation des données USB en appelant l'API enableUsbDataSignal dans UsbManager .
  • canUsbDataSignalingBeDisabled() est une API qui vérifie si l'activation ou la désactivation de la signalisation des données USB est prise en charge sur l'appareil.
  • isUsbDataSignalingEnabled() est une API qui vérifie si la signalisation des données USB a été activée.
    • Ceci est nécessaire pour vérifier si une fenêtre de dialogue de transparence des politiques s'affiche ou non. Les utilisateurs du système peuvent appeler une variante cachée pour cette API particulière qui peut être appelée par l'utilisateur du système pour vérifier si la signalisation des données USB a été activée pour un utilisateur particulier.
  • Exemple de mise en œuvre de Device Policy Manager

    Voici un exemple de mise en œuvre de 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();

    Paramètres

    Les utilisateurs peuvent modifier les préférences USB et les paramètres de partage de connexion dès que l'USB est connecté. Pour accéder à l'écran des préférences USB, procédez comme suit :

    1. Appuyez sur Paramètres.
    2. Appuyez sur Appareils connectés.
    3. Appuyez sur USB.

    Remarque : Si l'USB n'est pas connecté, les préférences USB ne peuvent pas être modifiées et n'apparaîtront pas dans la fenêtre Appareils connectés.

    Si un administrateur informatique désactive la signalisation des données USB sur un appareil appartenant à l'entreprise, l'utilisateur ne peut pas modifier ses préférences USB. Au lieu de cela, toutes les préférences USB dans Paramètres sont totalement désactivées, ce qui créera une fenêtre de dialogue de transparence des politiques.

    Remarque : Si la signalisation des données USB est désactivée, le débogage USB, les configurations USB par défaut et les préférences de routage audio USB seront tous désactivés dans les options du développeur.