Android 12 ha aggiunto la possibilità per gli amministratori IT di disattivare l'indicatore dei dati tramite USB sui dispositivi di proprietà dell'azienda (tranne la funzione di ricarica). Per supportare questa funzionalità, gli OEM devono aggiornare il proprio HAL USB e utilizzare il supporto aggiuntivo per le API Device Policy Manager.
Device Policy Manager
Per supportare la disattivazione dell'indicatore tramite USB, in DevicePolicyManager
sono incluse le seguenti tre API pubbliche:
setUsbDataSignalingEnabled(boolean enabled)
è un'API che attiva o disattiva l'indicatore di dati USB chiamando l'APIenableUsbDataSignal
inUsbManager
.canUsbDataSignalingBeDisabled()
è un'API che controlla se l'attivazione o la disattivazione dell'indicatore dei dati USB è supportata sul dispositivo.isUsbDataSignalingEnabled()
è un'API che controlla se l'indicatore dei dati USB è stato attivato.- Questo è necessario per verificare se viene visualizzata o meno una finestra di dialogo sulla trasparenza delle norme. Gli utenti del sistema possono chiamare una variante nascosta per questa particolare API, che può essere chiamata dall'utente del sistema per verificare se la segnalazione dati USB è stata abilitata per un determinato utente.
Esempio di implementazione di Device Policy Manager
Di seguito è riportato un esempio di come implementare Gestione norme relative ai dispositivi.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();
Impostazioni
Gli utenti possono modificare le impostazioni di tethering e delle preferenze USB non appena il cavo USB è collegato. Per accedere alla schermata delle preferenze USB:
- Tocca Impostazioni.
- Tocca Dispositivi connessi.
- Tocca USB.
Nota: se il cavo USB non è collegato, le preferenze USB non possono essere modificate e non verranno visualizzate nella finestra Dispositivi connessi.
Se un amministratore IT disattiva l'indicatore dei dati USB su un dispositivo di proprietà dell'azienda, l'utente non può modificare le preferenze USB. Invece, tutte le preferenze USB in Impostazioni sono completamente disattivate, il che creerà una finestra di dialogo della trasparenza dei criteri.
Nota:se l'indicatore dei dati USB è disattivato, il debug USB, le configurazioni USB predefinite e le preferenze di routing audio USB verranno disattivate nelle opzioni per gli sviluppatori.