Desativar sinal de dados por USB

O Android 12 adicionou a capacidade de administradores de TI desativar a sinalização de dados por USB em dispositivos corporativos, exceto para a função de carregamento. Para oferecer suporte a essa funcionalidade, os OEMs precisam atualizar a HAL do USB e usar o suporte adicionado para as APIs do Device Policy Manager.

Device Policy Manager

Para oferecer suporte à desativação da sinalização por USB, as três APIs públicas a seguir foram incluídas em DevicePolicyManager:

  • setUsbDataSignalingEnabled(boolean enabled) é uma API que ativa ou desativa a sinalização de dados USB chamando a API enableUsbDataSignal em UsbManager.
  • canUsbDataSignalingBeDisabled() é uma API que verifica se a ativação ou desativação da sinalização de dados USB tem suporte no dispositivo.
  • isUsbDataSignalingEnabled() é uma API que verifica se a sinalização de dados USB foi ativada.
    • Isso é necessário para verificar se uma janela da caixa de diálogo de transparência da política é exibida. Os usuários do sistema podem chamar uma variante oculta para essa API específica, que pode ser chamada pelo usuário do sistema para verificar se a sinalização de dados USB foi ativada para um usuário específico.
  • Exemplo de implementação do Device Policy Manager

    Confira a seguir um exemplo de como implementar o Gerenciador de políticas de dispositivo.
    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();

    Configurações

    Os usuários podem modificar as preferências de USB e as configurações de tethering assim que o USB for conectado. Para acessar a tela de preferências do USB, faça o seguinte:

    1. Toque em Configurações.
    2. Toque em Dispositivos conectados.
    3. Toque em USB.

    Observação:se o USB não estiver conectado, as preferências de USB não poderão ser modificadas e não vão aparecer na janela "Dispositivos conectados".

    Se um administrador de TI desativar a sinalização de dados USB em um dispositivo corporativo, o usuário não poderá modificar as preferências de USB. Em vez disso, todas as preferências USB em Configurações são totalmente desativadas, o que cria uma janela de diálogo de transparência de política.

    Observação:se a sinalização de dados USB estiver desativada, a depuração USB, as configurações padrão do USB e as preferências de roteamento de áudio USB serão desativadas nas opções para desenvolvedores.