O Android 12 adicionou a capacidade de os administradores de TI desativarem 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 USB e usar o suporte adicionado para APIs do Gerenciador de políticas do dispositivo.
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 APIenableUsbDataSignalemUsbManager.canUsbDataSignalingBeDisabled()é uma API que verifica se a ativação ou desativação da sinalização de dados USB é compatível com o dispositivo.isUsbDataSignalingEnabled()é uma API que verifica se a sinalização de dados USB foi ativada.- Necessário para verificar se uma janela de diálogo de transparência da política é mostrada. Os usuários do sistema podem chamar uma variante oculta dessa 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.
- Toque em Configurações.
- Toque em Dispositivos conectados.
- Toque em USB.
Exemplo de implementação do Device Policy Manager
Confira abaixo um exemplo de como implementar o Gerenciador de políticas de dispositivos.
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 de USB, faça o seguinte:
Observação:se o USB não estiver conectado, as preferências 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 de USB em Configurações são totalmente desativadas, o que cria uma janela de diálogo de transparência da política.
Observação:se a sinalização de dados USB estiver desativada, a depuração USB, as configurações USB padrão e as preferências de roteamento de áudio USB também serão desativadas nas opções do desenvolvedor.