O Android 12 adicionou a capacidade dos administradores de TI desativarem a sinalização de dados por USB em dispositivos corporativos (exceto a função de carregamento). Para oferecer suporte a essa funcionalidade, os OEMs devem atualizar seu USB HAL e utilizar o suporte adicional para APIs do Device Policy Manager.
Gerenciador de políticas de dispositivos
Para oferecer suporte à desativação da sinalização por USB, as três APIs públicas a seguir estão incluídas em DevicePolicyManager
:
-
setUsbDataSignalingEnabled(boolean enabled)
é uma API que ativa ou desativa a sinalização de dados USB chamando a APIenableUsbDataSignal
emUsbManager
. -
canUsbDataSignalingBeDisabled()
é uma API que verifica se a ativação ou desativação da sinalização de dados USB é suportada no dispositivo. -
isUsbDataSignalingEnabled()
é uma API que verifica se a sinalização de dados USB foi habilitada.- Isto é necessário para verificar se uma janela de diálogo de transparência de política é exibida ou não. Os usuários do sistema podem chamar uma variante oculta para esta API específica que pode ser chamada pelo usuário do sistema para verificar se a sinalização de dados USB foi habilitada para um usuário específico.
Exemplo de implementação do Device Policy Manager
Veja a seguir um exemplo de como implementar o 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();
Configurações
Os usuários podem modificar as preferências de USB e as configurações de tethering assim que o USB estiver conectado. Para acessar a tela de preferências USB, faça o seguinte:
- Toque em Configurações.
- Toque em Dispositivos conectados.
- Toque em USB.
Nota: Se o USB não estiver conectado, as preferências de USB não poderão ser modificadas e não aparecerão na janela Dispositivos conectados.
Se um administrador de TI desabilitar a sinalização de dados USB em um dispositivo corporativo, o usuário não poderá modificar suas preferências de USB. Em vez disso, todas as preferências USB em Configurações estão totalmente desabilitadas, o que criará uma janela de diálogo de transparência de política.
Nota: Se a sinalização de dados USB estiver desabilitada, a depuração USB, as configurações USB padrão e as preferências de roteamento de áudio USB serão desabilitadas nas opções do desenvolvedor.