Inhabilita la señalización de datos por USB

Android 12 agregó la capacidad para que los administradores de TI inhabiliten la señalización de datos por USB en dispositivos empresariales (excepto la función de carga). Para admitir esta funcionalidad, los OEM deben actualizar su HAL de USB y utilizar la compatibilidad agregada para las APIs de Device Policy Manager.

Administrador de políticas del dispositivo

Para admitir la inhabilitación de la señalización a través de USB, se incluyen las siguientes tres APIs públicas en DevicePolicyManager:

  • setUsbDataSignalingEnabled(boolean enabled) es una API que habilita o inhabilita la señalización de datos USB llamando a la API de enableUsbDataSignal en UsbManager.
  • canUsbDataSignalingBeDisabled() es una API que verifica si el dispositivo admite la habilitación o inhabilitación de la señalización de datos por USB.
  • isUsbDataSignalingEnabled() es una API que verifica si se habilitó la señalización de datos por USB.
    • Esto es necesario para verificar si se muestra o no una ventana de diálogo de transparencia de la política. Los usuarios del sistema pueden llamar a una variante oculta para esta API en particular, a la que puede llamar el usuario del sistema para verificar si se habilitó la señalización de datos USB para un usuario en particular.
  • Ejemplo de implementación del administrador de políticas del dispositivo

    A continuación, se muestra un ejemplo de cómo implementar 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();

    Configuración

    Los usuarios pueden modificar la preferencia de USB y la configuración de vinculación apenas se conecta el USB. Para acceder a la pantalla de preferencias de USB, haz lo siguiente:

    1. Presiona Configuración.
    2. Presiona Dispositivos conectados.
    3. Presiona USB.

    Nota: Si el cable USB no está conectado, no se podrán modificar las preferencias de USB ni aparecerán en la ventana Dispositivos conectados.

    Si un administrador de TI inhabilita la señalización de datos por USB en un dispositivo corporativo, el usuario no podrá modificar sus preferencias de USB. En su lugar, todas las preferencias de USB en Configuración están completamente inhabilitadas, lo que creará una ventana de diálogo de transparencia de la política.

    Nota: Si la señalización de datos por USB está inhabilitada, la depuración por USB, las configuraciones predeterminadas de USB y las preferencias de enrutamiento de audio por USB se inhabilitarán en las opciones para desarrolladores.