Cosa c'è in Android 9 per le app aziendali

Questa pagina fornisce una panoramica delle API, delle funzionalità e del comportamento aziendali. modifiche disponibili in Android 9.

Interfaccia utente del profilo di lavoro

Android 9 (livello API 28) include modifiche all'interfaccia utente nell'impostazione predefinita Avvio app per aiutare gli utenti a separare le app personali da quelle di lavoro. Produttori di dispositivi a supporto di questo aspetto possono presentare app in schede di lavoro e personali separate. Abbiamo inoltre semplificato l'attivazione e la disattivazione del profilo di lavoro per gli utenti dei dispositivi inclusa un'opzione nella scheda Lavoro di Avvio app.

Figura 1. Le schede personali e di lavoro dell'Avvio app predefinite con cambio profilo di lavoro
.

Durante il provisioning dei profili di lavoro e dei dispositivi gestiti, Android 9 include illustrazioni animate per aiutare gli utenti di dispositivi a comprendere queste funzionalità.

Cambiare app tra profili

Android 9 include API per avviare un'altra istanza di un'app in un per aiutare gli utenti a passare da un account all'altro. Ad esempio, un'app email può Fornire una UI che permette all'utente di passare dal profilo personale al profilo di lavoro e viceversa profilo per accedere a due account email. Tutte le app possono chiamare queste API per avviare Attività principale della stessa app se è già installata nell'altro profilo. A aggiungi il passaggio di più account alla tua app, segui i passaggi riportati di seguito per chiamare i metodi di Corso CrossProfileApps:

  1. Chiama il numero getTargetUserProfiles() per ricevere un elenco di profili in cui puoi avviare un'altra istanza dell'app. Questo metodo verifica che l'app è installata nei profili.
  2. Chiama il numero getProfileSwitchingIconDrawable() per ottenere un'icona da utilizzare per rappresentare un altro profilo.
  3. Chiama il numero getProfileSwitchingLabel() per richiedere testo localizzato che richiede all'utente di cambiare profilo.
  4. Chiama startMainActivity() per avviare un'istanza di la tua app in un altro profilo.

Verifica che l'attività principale che vuoi avviare sia dichiarata nel con un'azione per intent ACTION_MAIN e include una categoria di intent CATEGORY_LAUNCHER.

Attivare o disattivare i profili di lavoro in modo programmatico

L'Avvio app predefinito (o le app con l'autorizzazione MANAGE_USERS o MODIFY_QUIET_MODE) può attivare o disattivare il profilo di lavoro chiamando UserManager.requestQuietModeEnabled() Puoi controlla il valore restituito per sapere se l'utente deve confermare e credenziali prima della modifica dello stato. Perché il cambiamento potrebbe non avvenire all'istante, ascolta ACTION_MANAGED_PROFILE_AVAILABLE oppure ACTION_MANAGED_PROFILE_UNAVAILABLE per sapere quando aggiornare l'interfaccia utente.

La tua app può controllare lo stato del profilo di lavoro chiamando UserManager.isQuietModeEnabled()

Bloccare qualsiasi app su un dispositivo

A partire da Android 9, i proprietari di dispositivi e profili (di utenti secondari) può bloccare qualsiasi app sullo schermo di un dispositivo attivando la modalità di blocco attività. In precedenza, gli sviluppatori di app dovevano aggiungere il supporto per l'attività di blocco nelle app. Android 9 estende anche l'attività di blocco API per i proprietari di profili di utenti secondari non affiliati. Procedi come indicato di seguito. per bloccare un'app sullo schermo:

  1. Chiama DevicePolicyManager.setLockTaskPackages() per Aggiungi le app alla lista consentita per la modalità di blocco attività.
  2. Chiama il numero ActivityOptions.setLockTaskEnabled() per l'avvio di un'app inclusa nella lista consentita in modalità di blocco attività.

Per interrompere un'app in modalità di blocco attività, rimuovila dalla modalità di blocco attività lista consentita con DevicePolicyManager.setLockTaskPackages()

Attiva le funzionalità dell'interfaccia utente di sistema

Quando la modalità di blocco attività è attiva, i proprietari dei dispositivi e dei profili possono attivarla alcune funzioni dell'interfaccia utente di sistema sul dispositivo DevicePolicyManager.setLockTaskFeatures() e passare un di bit dei seguenti flag di funzionalità:

Puoi chiamare DevicePolicyManager.getLockTaskFeatures() per ottenere l'elenco delle funzionalità disponibili su un dispositivo quando è attiva la modalità di blocco attività in un bucket con il controllo delle versioni attivo. Quando un dispositivo esce dalla modalità di blocco attività, torna allo stato richiesto da altri criteri relativi ai dispositivi.

Elimina finestre di dialogo di errore

In alcuni ambienti, ad esempio dimostrazioni di vendita al dettaglio o informazioni pubbliche potrebbe essere utile non mostrare agli utenti finestre di dialogo di errore. Un criterio relativo ai dispositivi del controller (DPC) può eliminare le finestre di dialogo di errore di sistema per gli arresti anomali o le mancate risposte di app aggiungendo Utente di DISALLOW_SYSTEM_ERROR_DIALOGS delle risorse. Questa limitazione interessa tutte le finestre di dialogo quando viene applicata dal proprietario di un dispositivo ma vengono soppresse solo le finestre di dialogo di errore mostrate nell'utente principale o secondario quando la limitazione viene applicata dai proprietari dei profili. Questa restrizione non influisce sui profili di lavoro.

In Android 9, le app eseguite in schermo intero immersivo modalità non mostrano il fumetto del promemoria quando è attiva in modalità blocco attività. Il fumetto del promemoria è un riquadro mostrato agli utenti (al primo avvio) che spiega come uscire dalla modalità immersiva.

Supporta più utenti su dispositivi dedicati

Android 9 introduce il concetto di utente temporaneo per gli account (in precedenza dispositivi COSU). Gli utenti temporanei vengono gli utenti a breve termine destinati a casi in cui più utenti condividono su un dispositivo dedicato. Sono incluse le sessioni utente pubbliche su dispositivi come le biblioteche o chioschi per il check-in degli alberghi, nonché sessioni persistenti tra un ambiente un gruppo di utenti sui dispositivi, ad esempio lavoratori turnisti.

Gli utenti temporanei devono essere creati in background. Vengono creati come utenti secondari su un dispositivo e vengono rimossi (insieme alle app e dati) quando vengono arrestati, scambiati o il dispositivo si riavvia. Per creare un utente temporaneo, i proprietari di dispositivi possono:

  1. Imposta il flag MAKE_USER_EPHEMERAL durante le chiamate DevicePolicyManager.createAndManageUser().
  2. Chiama il numero DevicePolicyManager.startUserInBackground() per avviare l'utente temporaneo in background.

Tieni presente che le app destinate ad Android 9 dovrebbero rilevare UserManager.UserOperationException durante la chiamata createAndManageUser(). Chiama l'eccezione getUserOperationResult() per scoprire perché utente non è stato creato.

Ricevi notifiche di eventi

Il DeviceAdminReceiver riceve notifiche per i seguenti eventi:

Mostra messaggi di evento agli utenti

I proprietari dei dispositivi possono configurare i messaggi da mostrare agli utenti quando all'inizio e alla fine delle rispettive sessioni:

Uscire e interrompere gli utenti

I proprietari dei dispositivi possono utilizzare DevicePolicyManager.setLogoutEnabled() per specificare se la disconnessione sia abilitata per gli utenti secondari. Per verificare se la disconnessione è abilitata, chiama DevicePolicyManager.isLogoutEnabled()

I proprietari del profilo degli utenti secondari possono chiamare DevicePolicyManager.logoutUser() per interrompere l'utente secondario e torna all'utente principale.

I proprietari del dispositivo possono utilizzare DevicePolicyManager.stopUser() per interrompere una come utente secondario specificato.

Memorizzazione nella cache del pacchetto

Per semplificare il provisioning degli utenti sui dispositivi condivisi con un insieme fisso di utenti: come i dispositivi per turni, è possibile memorizzare nella cache i pacchetti necessarie per le sessioni multiutente:

  1. Chiama DevicePolicyManager.setKeepUninstalledPackages() per specificare l'elenco dei pacchetti da conservare come APK. Per recuperare un elenco di questi pacchi, chiama DevicePolicyManager.getKeepUninstalledPackages()

  2. Chiama il numero DevicePolicyManager.installExistingPackage() installare un pacchetto che è stato conservato dopo la rimozione tramite setKeepUninstalledPackages().

di Gemini Advanced.

Altri metodi e costanti

Android 9 include anche i seguenti metodi e costanti per un ulteriore supporto sessioni utente su dispositivi condivisi:

Cancella i dati del pacchetto e rimuovi gli account

I proprietari di dispositivi e profili possono chiamare clearApplicationUserData() per cancellare i dati utente per un determinato pacchetto. Per rimuovere un account dal AccountManager, i proprietari di dispositivi e profili possono chiamare removeAccount().

Limitazioni per gli utenti e maggiore controllo sulle impostazioni

Android 9 introduce una serie di limitazioni per gli utenti per i DPC, nonché possibilità di configurare APN, ora, fuso orario e impostazioni di sistema su un dispositivo.

Configura gli APN

I proprietari dei dispositivi possono utilizzare i seguenti metodi nell' DevicePolicyManager per configurare gli APN su una dispositivo:

Configura ora e fuso orario

I proprietari dei dispositivi possono utilizzare i seguenti metodi nell' Classe DevicePolicyManager per impostare l'orario e il fuso orario su un dispositivo:

Applicare restrizioni per gli utenti su impostazioni importanti

Android 9 aggiunge limitazioni relative agli utenti per disattivare funzionalità e impostazioni di sistema. A aggiungi una restrizione, chiama DevicePolicyManager.addUserRestriction() con uno dei le seguenti costanti UserManager:

Se DISALLOW_CONFIG_BRIGHTNESS e DISALLOW_CONFIG_SCREEN_TIMEOUT applicate in modo forzato su un dispositivo, i proprietari possono comunque impostare lo schermo luminosità, luminosità dello schermo modalità e timeout dello schermo sul dispositivo con l'API DevicePolicyManager.setSystemSetting().

Dati misurati

I proprietari del dispositivo e dei profili possono impedire alle app di utilizzare il reti di dati a consumo. Una rete viene considerata a consumo quando l'utente sensibili all'utilizzo intensivo dei dati a causa di costi, limiti di dati o batteria e o problemi di prestazioni. Per impedire alle app di utilizzare le reti a consumo, chiama DevicePolicyManager.setMeteredDataDisabledPackages() passando un elenco di nomi di pacchetti. Per recuperare le app attualmente limitate, chiama DevicePolicyManager.getMeteredDataDisabledPackages()

Per scoprire di più sui dati a consumo in Android, leggi l'articolo Ottimizzazione dei dati di rete Utilizzo.

Esegui la migrazione dei DPC (controller criteri dispositivi)

I controller dei criteri dei dispositivi (DPC) possono trasferire la proprietà di un dispositivo oppure profilo di lavoro a un altro DPC (controller criteri dispositivi). Potresti trasferire la proprietà per spostare alcune funzionalità all'Android Management API, per eseguire la migrazione dei dispositivi il tuo DPC legacy o per aiutare gli amministratori IT a eseguire la migrazione all'EMM. Perché sei solo modificare la proprietà DPC, non puoi utilizzare questa funzione per modificare il tipo Gestione dei dispositivi, ad esempio la migrazione da un dispositivo gestito a un profilo di lavoro viceversa.

Puoi utilizzare la risorsa XML dei criteri di amministrazione dei dispositivi per indicare che questa versione del DPC supporta la migrazione. Un DPC target indica di poter ricevere la proprietà includendo un elemento denominato <support-transfer-ownership>. L'esempio seguente mostra come eseguire questa operazione il file XML di amministrazione del dispositivo del DPC:

<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
    <support-transfer-ownership />
    <uses-policies>
        <limit-password />
        <watch-login />
        <reset-password />
    </uses-policies>
</device-admin>

I DPC che vogliono eseguire la migrazione della proprietà a una nuova app DPC possono verificare se supporta la migrazione chiamando il metodo DeviceAdminInfo supportsTransferOwnership() Prima del trasferimento proprietà, è responsabilità del DPC di origine verificare il DPC di destinazione il confronto tra le firme delle app. Il corso PackageManager include per lavorare con le firme del codice.

Android mantiene i criteri relativi agli utenti e al sistema del DPC di origine attraverso un trasferimento: non è necessario che i DPC eseguano la migrazione. Un DPC di origine può passare dati personalizzati il DPC target utilizzando coppie chiave-valore in un PersistableBundle. Dopo un trasferimento riuscito, il DPC di destinazione può recuperare questi dati richiamando DevicePolicyManager.getTransferOwnershipBundle()

I passaggi per trasferire la proprietà di un dispositivo gestito o di un profilo di lavoro sono: uguale:

  1. Il DPC di origine controlla che la versione del DPC di destinazione supporti la migrazione e Conferma che la firma dell'app del DPC di destinazione corrisponde a un valore previsto.
  2. Il DPC di origine chiama transferOwnership() per avviare il trasferimento.
  3. Il sistema imposta il DPC di destinazione come amministratore attivo e imposta in quanto proprietario del dispositivo gestito o del profilo di lavoro.
  4. Il DPC di destinazione riceve il callback onTransferOwnershipComplete() e può configurare utilizzando i valori dell'argomento bundle.
  5. In caso di problemi con il trasferimento, il sistema ripristina la proprietà il DPC di origine. Se il DPC di origine deve verificare che il trasferimento della proprietà riuscito, chiama isAdminActive() per verificare che il DPC di origine non è più l'amministratore attivo.

Tutte le app in esecuzione nel profilo di lavoro ricevono il token ACTION_PROFILE_OWNER_CHANGED trasmetti quando le modifiche del proprietario del profilo. Le app in esecuzione su un dispositivo gestito ricevono lo ACTION_DEVICE_OWNER_CHANGED viene trasmesso quando modifiche del proprietario del dispositivo.

Profili di lavoro su dispositivi completamente gestiti

Trasferimento di due istanze di un DPC in esecuzione come proprietario del dispositivo e proprietario del profilo avviene in due fasi. Se il profilo personale e il profilo di lavoro vengono un membro affiliato, completa il trasferimento nel seguente ordine:

  1. Innanzitutto, trasferisci la proprietà del profilo di lavoro.
  2. Attendi il callback DeviceAdminReceiver onTransferAffiliatedProfileOwnershipComplete() per confermare che il profilo di lavoro è stato trasferito al DPC di destinazione.
  3. Infine, trasferisci la proprietà del dispositivo gestito al DPC di destinazione.

Rimanda gli aggiornamenti over-the-air (OTA)

I proprietari dei dispositivi possono posticipare gli aggiornamenti di sistema OTA dei dispositivi fino a un massimo di 90 giorni per bloccare la versione del sistema operativo in esecuzione su questi dispositivi durante periodi critici (ad esempio festività). Il sistema applica un buffer obbligatorio di 60 giorni dopo per evitare di bloccare il dispositivo per un tempo indeterminato.

Durante un periodo di blocco:

  • I dispositivi non ricevono notifiche sugli aggiornamenti OTA in attesa.
  • I dispositivi non installano aggiornamenti OTA del sistema operativo.
  • Gli utenti dei dispositivi non possono controllare manualmente la disponibilità di aggiornamenti OTA nelle Impostazioni.

Per impostare un periodo di blocco, chiama SystemUpdatePolicy.setFreezePeriods() Poiché il blocco ogni anno si ripete, le date di inizio e fine del periodo sono rappresentate tramite numeri interi conteggiando il numero di giorni dall'inizio dell'anno. Il giorno di inizio deve iniziano almeno 60 giorni dopo la fine di qualsiasi periodo di blocco precedente. Dispositivo proprietari possono chiamare SystemUpdatePolicy.getFreezePeriods() per consente di recuperare un elenco di periodi di blocco impostati in precedenza per l'oggetto dei criteri di aggiornamento di sistema. DevicePolicyManager.getSystemUpdatePolicy() è stato vengono aggiornate in modo da restituire eventuali periodi di blocco impostati dal proprietario del dispositivo.

Limitare la condivisione in un profilo di lavoro

I proprietari del profilo possono impedire agli utenti di condividere dati personali in un profilo di lavoro sul dispositivo aggiungendo la limitazione utente DISALLOW_SHARE_INTO_MANAGED_PROFILE Questa limitazione impedisce le seguenti attività di gestione e condivisione degli intent:

  • App del profilo personale che condividono dati e file con le app del profilo di lavoro.
  • App del profilo di lavoro che selezionano elementi dal profilo personale, ad esempio immagini o file.

Dopo aver impostato questa limitazione, il DPC può comunque consentire l'Attività tra più profili gli intent richiamando addCrossProfileIntentFilter()

Chiavi protetti dall'hardware e certificati delle macchine

Android 9 aggiunge API per aiutarti a lavorare con chiavi e certificati si combinano per identificare i dispositivi in modo sicuro. Un DPC in esecuzione nel proprietario o dispositivo del profilo proprietario o un programma di installazione dei certificati delegato, possono completa le seguenti attività:

  • Genera chiavi e certificati nell'hardware protetto (ad esempio un certificato ambiente di esecuzione (TEE) o Secure Element (SE) del dispositivo Android. La le chiavi generate non escono mai dall'hardware sicuro e possono essere utilizzate dal KeyChain. Chiama DevicePolicyManager.generateKeyPair() che fornisce il dell'algoritmo (vedi KeyPairGenerator) e gli eventuali ID hardware che desideri che si voglia attestare, ad esempio il numero di serie o il codice IMEI. Per scoprire di più sulla sicurezza modifiche all'hardware, consulta la Guida per la sicurezza di Android 9 miglioramenti.
  • Associa un certificato a una chiave esistente generata dal dispositivo. Chiama DevicePolicyManager.setKeyPairCertificate() fornitura l'alias della chiave esistente e della catena di certificati, a partire dalla foglia certificato e includere la catena di attendibilità in ordine.
  • Prima di utilizzare la chiave, verifica che l'hardware sicuro protegga la chiave. Per verificare quali meccanismi proteggono la chiave, segui i passaggi descritti in Chiavi Attestazione.
  • I proprietari del dispositivo e gli utenti che hanno eseguito l'installazione dei certificati delegati possono ricevere un l'istruzione dei dispositivi ID hardware con versioni del sistema Android. Chiama DevicePolicyManager.generateKeyPair() ha superato uno o più di ID_TYPE_BASE_INFO, ID_TYPE_SERIAL, ID_TYPE_IMEI o ID_TYPE_MEID in idAttestationFlags. Il certificato restituito include l'hardware ID nel record di attestazione. Se non vuoi che gli ID hardware siano inclusi, trasmetti 0. I proprietari di profili possono ricevere informazioni sul produttore soltanto ID_TYPE_BASE_INFO). Per verificare che il dispositivo possa attestare gli ID, chiama isDeviceIdAttestationSupported()
  • Impedisci agli utenti dei dispositivi di usare impropriamente le chiavi aziendali (nelle attività non aziendali) rendendo non selezionabili i certificati della chiave. Il sistema non include certificati non selezionabili nel riquadro del selettore. Nel tuo DeviceAdminReceiver.onChoosePrivateKeyAlias() di callback di Google, restituisci l'alias alla tua chiave aziendale in modo che seleziona automaticamente il certificato per conto dell'utente. Per creare una chiave non selezionabile, chiama i seguenti metodi DevicePolicyManager:

Combinando queste API, le aziende possono identificare i dispositivi e confermare in modo sicuro la loro integrità prima di fornire l'accesso:

  1. Il dispositivo Android genera una nuova chiave privata nell'hardware sicuro. Poiché la chiave privata non esce mai dall'hardware protetto, rimane segreta.
  2. Il dispositivo utilizza la chiave per creare e inviare una richiesta di firma del certificato (CSR) al server. Il CSR include il record di attestazione contenente ID dispositivo.
  3. Il server convalida la catena di certificati (rooted a un certificato Google) ed estrae i metadati del dispositivo dal record di attestazione.
  4. Il server verifica che l'hardware sicuro protegga la chiave privata e che gli ID dispositivo corrispondano a quelli in possesso dell'azienda. Il server può inoltre verificare che il sistema Android e le versioni delle patch soddisfino eventuali requisiti.
  5. Il server genera un certificato dalla CSR e lo invia a del dispositivo.
  6. Il dispositivo accoppia il certificato alla chiave privata (che rimane nella hardware sicuro) che consente alle app di connettersi ai servizi aziendali.

Altre API, funzionalità e modifiche per la sicurezza

ID per i log di sicurezza e i log di rete

Android 9 include gli ID nei log di sicurezza e delle attività di rete. L'ID numerico aumenta monotonicamente per ogni evento, consentendo agli amministratori IT di individuare più facilmente lacune nei log. Poiché i log di sicurezza e i log di rete sono separati raccolte, il sistema mantiene valori ID separati.

Chiama il numero SecurityEvent.getId(), DnsEvent.getId() oppure ConnectEvent.getId() per ottenere il valore dell'ID. Il sistema reimposta l'ID ogni volta che un DPC abilita il logging o al riavvio del dispositivo. Log di sicurezza recuperati tramite la chiamata DevicePolicyManager.retrievePreRebootSecurityLogs() non includono questi ID.

Logging di sicurezza

Il logging di sicurezza assegna un livello di log a ogni SecurityEvent. Per ottenere il livello di log, chiama getLogLevel(). Questo metodo restituisce un valore a livello di log che può essere LEVEL_INFO, LEVEL_WARNING o LEVEL_ERROR

Android 9 registra gli eventi elencati nella tabella che segue nella sezione Sicurezza log. Per controllare il tag di un evento, chiama getTag(). A recupera i dati sull'evento, chiama getData().

Tagga Descrizione evento
TAG_CERT_AUTHORITY_INSTALLED Tentativo di installare un nuovo certificato radice nell'archivio credenziali del sistema.
TAG_CERT_AUTHORITY_REMOVED Tentativo di rimuovere un certificato radice dall'archivio credenziali del sistema.
TAG_CERT_VALIDATION_FAILURE Un certificato Wi-Fi non ha superato il controllo di convalida durante la connessione.
TAG_CRYPTO_SELF_TEST_COMPLETED Il sistema ha completato la verifica automatica della crittografia.
TAG_KEYGUARD_DISABLED_FEATURES_SET Un'app di amministrazione ha disattivato le funzionalità di una schermata di blocco di un dispositivo o di un profilo di lavoro.
TAG_KEY_DESTRUCTION Tentativo di eliminare una chiave di crittografia.
TAG_KEY_GENERATED Tentativo di generare una nuova chiave di crittografia.
TAG_KEY_IMPORT Tentativo di importare una nuova chiave di crittografia.
TAG_KEY_INTEGRITY_VIOLATION Android ha rilevato una crittografia o una chiave di autenticazione danneggiate.
TAG_LOGGING_STARTED Registrazione del logging di sicurezza avviata.
TAG_LOGGING_STOPPED La registrazione del logging di sicurezza è stata interrotta.
TAG_LOG_BUFFER_SIZE_CRITICAL Il buffer dei log di sicurezza ha raggiunto il 90% della capacità.
TAG_MAX_PASSWORD_ATTEMPTS_SET Un'app di amministrazione ha impostato il numero di tentativi consentiti di inserimento della password errata.
TAG_MAX_SCREEN_LOCK_TIMEOUT_SET Un'app di amministrazione ha impostato un timeout massimo per il blocco schermo.
TAG_MEDIA_MOUNT Il supporto di archiviazione rimovibile montato sul dispositivo.
TAG_MEDIA_UNMOUNT Il dispositivo di archiviazione rimovibile ha smontato.
TAG_OS_SHUTDOWN Il sistema Android si è spento.
TAG_OS_STARTUP Il sistema Android è stato avviato.
TAG_PASSWORD_COMPLEXITY_SET Un'app amministratore imposta i requisiti di complessità delle password.
TAG_PASSWORD_EXPIRATION_SET Un'app di amministrazione ha impostato una durata per la scadenza della password.
TAG_PASSWORD_HISTORY_LENGTH_SET Un'app di amministrazione ha impostato una durata della cronologia delle password, impedendo agli utenti di riutilizzare vecchie password.
TAG_REMOTE_LOCK Un'app di amministrazione ha bloccato il dispositivo o il profilo di lavoro.
TAG_USER_RESTRICTION_ADDED Un'app di amministrazione ha impostato una limitazione per gli utenti.
TAG_USER_RESTRICTION_REMOVED Un'app di amministrazione ha rimosso una limitazione per gli utenti.
TAG_WIPE_FAILURE Tentativo di cancellare i dati di un dispositivo o di un profilo di lavoro non riuscito.

Sfida schermata di blocco del profilo di lavoro

A partire da Android 9, i proprietari dei profili possono richiedere agli utenti di impostare un blocco separato schermata per il profilo di lavoro utilizzando Limitazione utente DISALLOW_UNIFIED_PASSWORD. A controllare se per un utente è stata impostata la stessa verifica della schermata di blocco per il dispositivo e profilo di lavoro, chiamata DevicePolicyManager.isUsingUnifiedPassword()

Se su un dispositivo è presente una schermata di blocco per il profilo di lavoro separata, DevicePolicyManager.setMaximumTimeToLock() imposta solo un timeout della schermata di blocco per il profilo di lavoro anziché per l'intero dispositivo.

Accesso agli strumenti per sviluppatori

Per mantenere i dati di lavoro nel profilo di lavoro, lo strumento Android Debug Bridge (adb) non possono accedere alle directory e ai file nel profilo di lavoro.

Supporto di altre opzioni biometriche

Android 9 offre un controllo granulare sull'autenticazione hardware biometrica in un schermata di blocco del profilo di lavoro. Chiama l'istanza DevicePolicyManager.setKeyguardDisabledFeatures() con KEYGUARD_DISABLE_FACE e KEYGUARD_DISABLE_IRIS Per disattivare tutti i metodi di autenticazione biometrica forniti dal dispositivo, aggiungi KEYGUARD_DISABLE_BIOMETRICS.

Ritiro dei criteri di amministrazione dei dispositivi

Android 9 contrassegna i criteri elencati di seguito come deprecati per i DPC che utilizzano device Amministratore. I criteri continuano a funzionare su Android 9, come ha fatto in precedenza. A partire dalla release di Android 10, gli stessi criteri genereranno un'eccezione SecurityEccezioni quando richiamati da un amministratore del dispositivo.

Alcune applicazioni utilizzano l'amministrazione del dispositivo per l'amministrazione dei dispositivi consumer. Per ad esempio bloccare e cancellare i dati di un dispositivo smarrito. Le seguenti norme continueranno a essere applicate disponibili per abilitare questa funzione:

Per maggiori informazioni su queste modifiche, leggi Amministratore dispositivo il ritiro.

Registrazione semplificata del codice QR

Libreria QR integrata

Android 9 viene fornito in bundle con una libreria QR per semplificare il dispositivo con codice QR per eseguire il provisioning. Gli amministratori IT non devono più inserire manualmente i dettagli del Wi-Fi per la configurazione un dispositivo. Con Android 9 è invece possibile includere questi dettagli relativi al Wi-Fi. all'interno di un codice QR. Quando un amministratore IT scansiona il codice QR con un account di proprietà dell'azienda dispositivo, il dispositivo si connette automaticamente alla rete Wi-Fi ed inserisce il provisioning senza ulteriori input manuali.

Il metodo di provisioning del codice QR supporta le seguenti opzioni di provisioning aggiuntive per specificare i dettagli del Wi-Fi:

Imposta data e fuso orario utilizzando i provisioning extra

Il metodo di provisioning del codice QR supporta il provisioning extra per impostare l'ora e fuso orario su un dispositivo:

Opzioni di cancellazione dei dati

Gli amministratori dei dispositivi possono mostrare un messaggio personalizzato agli utenti quando rimuovono un lavoro profilo utente o utente secondario. Il messaggio aiuta gli utenti dei dispositivi a comprendere che L'amministratore IT ha rimosso il profilo di lavoro o l'utente secondario. Chiama wipeData(int, CharSequence) e fornisci uno Short esplicativo. Quando l'utente principale o il proprietario del dispositivo chiama, il sistema non mostra alcun messaggio e avvia il ripristino dei dati di fabbrica del dispositivo.

Per rimuovere i dati dell'abbonamento da una SIM eUICC incorporata, chiama wipeData() e includi WIPE_EUICC in flags .

Metodi per i proprietari di profili affiliati

I seguenti metodi sono disponibili per il profilo affiliato proprietari: