Avantages d'Android 9 pour les applications d'entreprise

Cette page présente les API d'entreprise, leurs fonctionnalités et leur comportement disponibles dans Android 9.

Interface utilisateur du profil professionnel

Android 9 (niveau d'API 28) inclut les modifications de l'interface utilisateur dans la lanceur d'applications pour aider les utilisateurs à séparer les applications personnelles et professionnelles. Fabricants d'appareils la prise en charge de cela peut présenter aux utilisateurs dans des onglets professionnels et personnels distincts. Il est également plus facile pour les utilisateurs d'appareils d'activer et de désactiver le profil professionnel en y compris un commutateur dans l'onglet de travail du lanceur d'applications.

Figure 1. Onglets personnels et professionnels du lanceur d'applications par défaut grâce au changement de profil professionnel

Lors du provisionnement des profils professionnels et des appareils gérés, Android 9 inclut illustrations animées destinées à aider les utilisateurs de l'appareil à comprendre ces fonctionnalités.

Changer d'application d'un profil à un autre

Android 9 inclut des API permettant de lancer une autre instance d'une application dans un autre profil pour aider les utilisateurs à passer d'un compte à un autre. Par exemple, une application de messagerie peut fournir une UI permettant à l'utilisateur de basculer entre son profil personnel et son profil professionnel. pour accéder à deux comptes de messagerie. Toutes les applications peuvent appeler ces API pour lancer activité principale de la même application si elle est déjà installée dans l'autre profil. À ajouter le changement de compte entre profils dans votre application, suivez la procédure ci-dessous pour appeler des méthodes Classe CrossProfileApps:

  1. Appelez getTargetUserProfiles() pour obtenir une liste des profils dans lesquels vous pouvez lancer une autre instance de l'application. Cette méthode vérifie que l'application est installée dans les profils.
  2. Appeler getProfileSwitchingIconDrawable() pour obtenir une icône que vous pouvez utiliser pour représenter un autre profil.
  3. Appelez getProfileSwitchingLabel() pour obtenir texte localisé invitant l'utilisateur à changer de profil.
  4. Appelez startMainActivity() pour lancer une instance de votre application dans un autre profil.

Vérifiez que l'activité principale que vous souhaitez lancer est déclarée dans le fichier fichier manifeste avec une action d'intent ACTION_MAIN et inclut une catégorie d'intent CATEGORY_LAUNCHER.

Activer ou désactiver les profils professionnels par programmation

Le lanceur d'applications par défaut (ou les applications disposant de l'autorisation MANAGE_USERS ou MODIFY_QUIET_MODE) peut activer ou désactiver le profil professionnel en appelant UserManager.requestQuietModeEnabled() Vous pouvez inspecter la valeur renvoyée pour savoir si l'utilisateur doit confirmer ses les identifiants avant le changement d'état. Parce que le changement peut ne pas se produire instantanément, écoutez l'événement ACTION_MANAGED_PROFILE_AVAILABLE ou ACTION_MANAGED_PROFILE_UNAVAILABLE annoncer pour savoir quand mettre à jour l'interface utilisateur.

Votre application peut vérifier l'état du profil professionnel en appelant UserManager.isQuietModeEnabled()

Verrouiller n'importe quelle application sur un appareil

À partir d'Android 9, les propriétaires d'appareils et de profils (des utilisateurs secondaires) peuvent verrouiller n'importe quelle application sur l'écran d'un appareil en activant le mode tâches verrouillées. Auparavant, les développeurs d'applications devaient ajouter la prise en charge des tâches de verrouillage dans leurs applications. Android 9 étend également la tâche de verrouillage API permettant de profiler les propriétaires d'utilisateurs secondaires non affiliés. Suivez les étapes ci-dessous pour verrouiller une application à l'écran:

  1. Appelez DevicePolicyManager.setLockTaskPackages() pour d'ajouter des applications à la liste d'autorisation pour le mode tâches verrouillées.
  2. Appelez ActivityOptions.setLockTaskEnabled() pour lancer une application figurant sur la liste d'autorisation en mode tâches verrouillées.

Pour arrêter une application en mode tâches verrouillées, retirez-la du mode tâches verrouillées. liste d'autorisation à l'aide de DevicePolicyManager.setLockTaskPackages()

Activer les fonctionnalités de l'UI du système

Lorsque le mode tâches verrouillées est activé, les propriétaires de l'appareil et du profil peuvent l'activer certaines fonctionnalités d'UI du système sur l'appareil en appelant DevicePolicyManager.setLockTaskFeatures() et en transmettant une des indicateurs de fonctionnalité suivants:

Vous pouvez appeler DevicePolicyManager.getLockTaskFeatures() pour obtenir la liste des fonctionnalités disponibles sur un appareil lorsque le mode tâches verrouillées est activé. est activé. Lorsqu'un appareil quitte le mode tâches verrouillées, il revient à l'état requis par d'autres règles relatives aux appareils.

Supprimer les boîtes de dialogue d'erreur

Dans certains environnements, tels que les démonstrations en magasin ou l'information publique s'affiche, vous ne souhaitez peut-être pas présenter de boîtes de dialogue d'erreur aux utilisateurs. Une règle relative aux appareils le contrôleur (DPC) peut supprimer les boîtes de dialogue d'erreur système en cas de plantage ou d'absence de réponse applications en ajoutant le paramètre Utilisateur DISALLOW_SYSTEM_ERROR_DIALOGS ou d'une restriction d'accès. Cette restriction affecte toutes les boîtes de dialogue lorsqu'elle est appliquée par le propriétaire d'un appareil mais seules les boîtes de dialogue d'erreur affichées dans l'utilisateur principal ou secondaire sont supprimées lorsque la restriction est appliquée par les propriétaires de la fiche. Cette restriction ne affecter les profils professionnels.

Sous Android 9, les applications exécutées en plein écran immersif n'affichent pas l'info-bulle de rappel mode tâches verrouillées. L'info-bulle de rappel est un panneau présenté aux utilisateurs (lors du premier lancement) expliquant comment quitter le mode immersif.

Prendre en charge plusieurs utilisateurs sur des appareils dédiés

Android 9 introduit le concept d'utilisateur éphémère pour les applications (anciennement "appareils COSU"). Les utilisateurs éphémères sont les utilisateurs à court terme destinés aux cas où plusieurs utilisateurs partagent un même un appareil dédié. Cela inclut les sessions utilisateur publiques sur des appareils ou des kiosques d'accueil, ainsi que des sessions persistantes entre d'utilisateurs sur des appareils (par exemple, les travailleurs postés).

Les utilisateurs éphémères doivent être créés en arrière-plan. Ils sont créés en tant que les utilisateurs secondaires sur un appareil et sont supprimés (ainsi que les applications et les données) lorsqu'elles sont arrêtées, activées ou désactivées, ou que l'appareil redémarre. Pour créer un utilisateur éphémère, les propriétaires de l'appareil peuvent:

  1. Définissez l'option MAKE_USER_EPHEMERAL lors de l'appel DevicePolicyManager.createAndManageUser()
  2. Appeler DevicePolicyManager.startUserInBackground() pour lancer l'utilisateur éphémère en arrière-plan.

Notez que les applis ciblant Android 9 doivent intercepter UserManager.UserOperationException lors de l'appel createAndManageUser() Appelez la fonction getUserOperationResult() pour savoir pourquoi utilisateur n'a pas été créé.

Recevoir des notifications d'événements

Le DeviceAdminReceiver reçoit les notifications pour événements suivants:

Afficher des messages d'événement pour les utilisateurs

Les propriétaires d'appareils peuvent configurer les messages que voient les utilisateurs lorsqu'ils démarrer et terminer leurs sessions:

Se déconnecter et arrêter l'accès des utilisateurs

Les propriétaires de l'appareil peuvent utiliser DevicePolicyManager.setLogoutEnabled() pour spécifier si la déconnexion est activée pour les utilisateurs secondaires. Pour vérifier si la déconnexion est activée, appelez DevicePolicyManager.isLogoutEnabled()

Les propriétaires de profils des utilisateurs secondaires peuvent appeler DevicePolicyManager.logoutUser() pour arrêter l'utilisateur secondaire et revenir à l’utilisateur principal.

Les propriétaires d'appareils peuvent utiliser DevicePolicyManager.stopUser() pour arrêter un un utilisateur secondaire spécifié.

Mise en cache des packages

Pour simplifier la gestion des comptes utilisateur sur les appareils partagés avec un nombre fixe d'utilisateurs, tels que des appareils pour les travailleurs postés, il est possible de mettre en cache les packages nécessaires pour les sessions multi-utilisateurs:

  1. Appeler DevicePolicyManager.setKeepUninstalledPackages() pour spécifier la liste des packages à conserver en tant qu'APK. Pour récupérer une liste de ces packages, appeler DevicePolicyManager.getKeepUninstalledPackages()

  2. Appeler DevicePolicyManager.installExistingPackage() pour installer un package qui a été conservé après sa suppression via setKeepUninstalledPackages()

Méthodes et constantes supplémentaires

Android 9 inclut également les méthodes et constantes suivantes pour une meilleure compatibilité sessions utilisateur sur des appareils partagés:

Effacer les données des colis et supprimer les comptes

Les propriétaires d'appareils et de profils peuvent appeler clearApplicationUserData() pour effacer les données utilisateur pour un package donné. Pour supprimer un compte AccountManager, les propriétaires de l'appareil et du profil peuvent appeler removeAccount()

Restrictions des utilisateurs et contrôle accru des paramètres

Android 9 introduit un ensemble de restrictions utilisateur pour les DPC, ainsi que le Possibilité de configurer les APN, l'heure, le fuseau horaire et les paramètres système d'un appareil

Configurer les APN

Les propriétaires d'appareils peuvent utiliser les méthodes suivantes dans le la classe DevicePolicyManager pour configurer les APN sur un appareil:

Configurer l'heure et le fuseau horaire

Les propriétaires d'appareils peuvent utiliser les méthodes suivantes dans le Classe DevicePolicyManager pour définir l'heure et le fuseau horaire sur un appareil:

Appliquer des restrictions utilisateur aux paramètres importants

Android 9 ajoute des restrictions utilisateur pour désactiver les fonctionnalités et les paramètres système. À ajouter une restriction, appeler DevicePolicyManager.addUserRestriction() par l'un des éléments Constantes UserManager suivantes:

Si DISALLOW_CONFIG_BRIGHTNESS et DISALLOW_CONFIG_SCREEN_TIMEOUT sont appliquées sur un appareil, les propriétaires de l'appareil peuvent toujours définir l'écran luminosité, luminosité de l'écran mode et les paramètres de mise en veille de l'écran sur l'appareil à l'aide de l'API DevicePolicyManager.setSystemSetting()

Données mesurées

Les propriétaires d'appareils et les propriétaires de profils peuvent empêcher les applications d'utiliser l'adresse e-mail d'un appareil avec des réseaux de données facturés à l'usage. Un réseau est considéré comme facturé à l'usage lorsque l'utilisateur sensibles à une consommation intensive de données en raison du coût, des limites de données, ou de l'utilisation les problèmes de performances. Pour empêcher les applications d'utiliser des réseaux facturés à l'usage, appelez DevicePolicyManager.setMeteredDataDisabledPackages() en transmettant une liste de noms de packages. Pour récupérer les applications actuellement limitées, appelez DevicePolicyManager.getMeteredDataDisabledPackages()

Pour en savoir plus sur les données facturées à l'usage dans Android, consultez la page Optimiser les données réseau Utilisation.

Migrer les DPC

Les outils de contrôle des règles relatives aux appareils (DPC) peuvent transférer la propriété d'un appareil ou votre profil professionnel à un autre DPC. Vous pouvez transférer la propriété pour déplacer certaines fonctionnalités dans l'application Android Management API, pour migrer les appareils votre ancien DPC ou pour aider les administrateurs informatiques à migrer vers votre EMM. Parce que vous ne faites que modifier la propriété de l'outil DPC, vous ne pouvez pas utiliser cette fonctionnalité pour modifier le type de gestion de l'authentification, par exemple, en passant d'un appareil géré à un profil professionnel vice-versa.

Vous pouvez utiliser la ressource XML sur les règles d'administration des appareils pour indiquer que cette version de votre DPC prend en charge la migration. Un DPC cible indique qu'il peut recevoir sa propriété en incluant un élément nommé <support-transfer-ownership> L'exemple ci-dessous montre comment procéder dans le fichier XML d'administration de l'appareil de votre 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>

Les DPC qui souhaitent migrer la propriété d'une nouvelle application peuvent vérifier si un DPC cible est compatible avec la migration en appelant la méthode DeviceAdminInfo. supportsTransferOwnership() Avant le transfert propriété, il incombe au DPC source de vérifier le DPC cible en comparer les signatures d'applications. La classe PackageManager inclut pour travailler avec des signatures de code.

Android gère le système DPC source et les règles utilisateur via une propriété transfert : les DPC n'ont pas besoin de les migrer. Un DPC source peut transmettre des données personnalisées à le DPC cible à l'aide de paires clé/valeur dans un PersistableBundle. Après un transfert réussi, le DPC cible peut récupérer ces données en appelant DevicePolicyManager.getTransferOwnershipBundle()

Pour transférer la propriété d'un appareil géré ou d'un profil professionnel, procédez comme suit : identique:

  1. Le DPC source vérifie que la version du DPC cible prend en charge la migration et confirme que la signature de l'application du DPC cible correspond à une valeur attendue.
  2. Le DPC source appelle transferOwnership() pour démarrer la transfert.
  3. Le système fait du DPC cible l'administrateur actif et définit comme propriétaire de l'appareil géré ou du profil professionnel.
  4. Le DPC cible reçoit le rappel onTransferOwnershipComplete() et peut configurer à l'aide des valeurs de l'argument bundle.
  5. En cas de problème lors du transfert, le système en restitue la propriété à le DPC source. Si votre DPC source doit confirmer que le transfert de propriété réussi, appelez isAdminActive() pour vérifier que le DPC source n'est plus l'administrateur actif.

Toutes les applications exécutées dans le profil professionnel reçoivent l'autorisation ACTION_PROFILE_OWNER_CHANGED diffuse lorsque le propriétaire de la fiche change. Les applications exécutées sur un appareil géré reçoivent l'information ACTION_DEVICE_OWNER_CHANGED diffuse lorsque l'événement les changements de propriétaire de l'appareil.

Profils professionnels sur des appareils entièrement gérés

Transfert de deux instances d'un DPC exécuté en tant que propriétaire de l'appareil et propriétaire du profil se déroule en deux étapes. Lorsque le profil personnel et le profil professionnel sont affilié, effectuez le transfert dans l'ordre suivant:

  1. Commencez par transférer la propriété du profil professionnel.
  2. Attendez le rappel de DeviceAdminReceiver. onTransferAffiliatedProfileOwnershipComplete() pour confirmer que le profil professionnel a été transféré vers le DPC cible.
  3. Enfin, transférez la propriété de l'appareil géré au DPC cible.

Reporter les mises à jour Over The Air (OTA)

Les propriétaires d'appareils peuvent reporter les mises à jour OTA du système jusqu'à 90 jours pour figer la version du système d'exploitation exécutée sur ces appareils lors des périodes critiques jours fériés). Le système applique un tampon obligatoire de 60 jours après une période pour éviter que l'appareil soit gelé indéfiniment.

Pendant cette période:

  • Les appareils ne reçoivent aucune notification concernant les mises à jour OTA en attente.
  • Les appareils n'installent aucune mise à jour OTA de l'OS.
  • Les utilisateurs d'appareils ne peuvent pas rechercher manuellement les mises à jour OTA dans les paramètres.

Pour définir une période de blocage, appelez SystemUpdatePolicy.setFreezePeriods() Comme le gel se répète chaque année, les dates de début et de fin de la période sont représentées ; par des entiers comptant le nombre de jours écoulés depuis le début de l'année. Le jour de début doit commencer au moins 60 jours après la fin de toute période de blocage précédente. Appareil propriétaires peuvent appeler SystemUpdatePolicy.getFreezePeriods() pour obtenir la liste des périodes de blocage précédemment définies sur l'objet de règle de mise à jour du système ; DevicePolicyManager.getSystemUpdatePolicy() a été mis à jour pour renvoyer les périodes de blocage définies par le propriétaire de l'appareil.

Restreindre le partage dans un profil professionnel

Les propriétaires de profil peuvent empêcher les utilisateurs de partager des données à caractère personnel dans un profil professionnel sur l'appareil en ajoutant la restriction utilisateur DISALLOW_SHARE_INTO_MANAGED_PROFILE Cette restriction empêche le traitement et le partage d'intents suivants:

  • Les applications du profil personnel partagent des données et des fichiers avec les applications du profil professionnel.
  • Applications du profil professionnel sélectionnant des éléments du profil personnel, par exemple des images ou des fichiers.

Après avoir défini cette restriction, votre DPC peut toujours autoriser l'activité dans tous les profils. d'intents en appelant addCrossProfileIntentFilter()

Clés sécurisées et certificats de machine

Android 9 ajoute des API pour vous aider à utiliser des clés et des certificats que vous pouvez pour identifier les appareils en toute sécurité. Un DPC exécuté au niveau du propriétaire du profil ou de l'appareil ou un programme d'installation de certificat délégué, effectuez les tâches suivantes:

  • Générez des clés et des certificats dans le matériel sécurisé (tel qu'un serveur l'environnement d'exécution (TEE) ou le composant sécurisé (SE) de l'appareil Android. La générées ne quittent jamais le matériel sécurisé et peuvent être utilisées à partir du Android KeyChain. Appeler DevicePolicyManager.generateKeyPair(), qui fournit les (voir KeyPairGenerator) et tous les ID matériel que vous comme le numéro de série ou le code IMEI. Pour en savoir plus sur la sécurisation les modifications matérielles, reportez-vous à la page Sécurité d'Android 9 améliorations.
  • Associer un certificat à une clé existante générée par l'appareil Appeler DevicePolicyManager.setKeyPairCertificate() fournit l'alias de la clé existante et de la chaîne de certificats, en commençant par la feuille certificat et en incluant la chaîne de confiance dans l’ordre.
  • Vérifiez que le matériel sécurisé protège la clé avant de l'utiliser. Pour vérifier mécanismes qui protègent la clé, suivez la procédure décrite dans la section Attestation :
  • Les propriétaires d'appareils et les installateurs de certificats délégués peuvent recevoir un des appareils ID matériel avec les versions du système Android. Appeler DevicePolicyManager.generateKeyPair() qui transmet un ou plusieurs sur ID_TYPE_BASE_INFO, ID_TYPE_SERIAL, ID_TYPE_IMEI ou ID_TYPE_MEID dans Argument idAttestationFlags. Le certificat renvoyé inclut le matériel ID figurant dans l'enregistrement d'attestation. Si vous ne souhaitez pas inclure les ID de matériel, transmettez 0 Les propriétaires de profils peuvent uniquement recevoir des informations sur le fabricant (en transmettant ID_TYPE_BASE_INFO). Pour vérifier que l'appareil peut attester des identifiants, appelez isDeviceIdAttestationSupported()
  • Empêcher les utilisateurs d'un appareil d'utiliser les clés d'entreprise de manière abusive (dans les tâches non professionnelles) en rendant les certificats de clé non sélectionnables. Le système n'inclut pas des certificats non sélectionnables dans le panneau de sélection. Dans votre DeviceAdminReceiver.onChoosePrivateKeyAlias() méthode de rappel, renvoyez l'alias à votre clé d'entreprise pour que le système sélectionne automatiquement le certificat au nom de l'utilisateur. Pour créer une clé non sélectionnable, appelez les méthodes DevicePolicyManager suivantes: <ph type="x-smartling-placeholder">

En combinant ces API, les entreprises peuvent identifier les appareils en toute sécurité et confirmer leur intégrité avant d'accorder l'accès:

  1. L'appareil Android génère une nouvelle clé privée dans le matériel sécurisé. Comme la clé privée ne quitte jamais le matériel sécurisé, elle reste secrète.
  2. L'appareil utilise la clé pour créer et envoyer une demande de signature de certificat (CSR) au serveur. La requête de signature de certificat inclut l'enregistrement d'attestation contenant le ID d'appareil.
  3. Le serveur valide la chaîne de certificats (associée à un certificat Google) et extrait les métadonnées de l'appareil de l'enregistrement d'attestation.
  4. Le serveur confirme que le matériel sécurisé protège la clé privée et que les ID des appareils correspondent aux enregistrements de l'entreprise. Le serveur peut également vérifier que le système Android et les versions du correctif répondent à toutes les exigences.
  5. Le serveur génère un certificat à partir de la requête de signature de certificat et l'envoie à l'appareil.
  6. L'appareil associe le certificat à la clé privée (qui est conservée dans matériel sécurisé) permettant aux applications de se connecter aux services d'entreprise.

Plus d'API, de fonctionnalités et de modifications de sécurité

ID des journaux de sécurité et des journaux réseau

Android 9 inclut des ID dans les journaux de sécurité et d'activité réseau. L'identifiant numérique augmente de façon linéaire pour chaque événement, ce qui permet aux administrateurs informatiques de repérer plus facilement des lacunes dans leurs journaux. Comme les journaux de sécurité et les journaux réseau sont collections, le système gère des valeurs d'ID distinctes.

Appelez SecurityEvent.getId(), DnsEvent.getId() ou ConnectEvent.getId() pour obtenir la valeur de l'ID. Le système réinitialise l'ID chaque fois qu'un DPC active la journalisation ou lorsque l'appareil redémarre. Journaux de sécurité récupérés en appelant DevicePolicyManager.retrievePreRebootSecurityLogs() n'incluent pas ces identifiants.

Journalisation de sécurité

La journalisation de sécurité attribue à chaque SecurityEvent un niveau de journalisation. Pour obtenir le niveau de journalisation, appelez getLogLevel(). Cette méthode renvoie une valeur de niveau de journalisation qui Peut être l'une des valeurs suivantes: LEVEL_INFO, LEVEL_WARNING ou LEVEL_ERROR

Android 9 enregistre les événements répertoriés dans le tableau ci-dessous dans les paramètres de sécurité journaux. Pour vérifier le tag d'un événement, appelez getTag(). À Récupérez les données d'événement, appelez getData().

Taguer Description de l'événement
TAG_CERT_AUTHORITY_INSTALLED Tentative d'installation d'un nouveau certificat racine dans l'espace de stockage des identifiants du système.
TAG_CERT_AUTHORITY_REMOVED Tentative de suppression d'un certificat racine de l'espace de stockage des identifiants du système.
TAG_CERT_VALIDATION_FAILURE Le contrôle de validation du certificat Wi-Fi a échoué lors de la connexion.
TAG_CRYPTO_SELF_TEST_COMPLETED Le système a effectué l'auto-test cryptographique.
TAG_KEYGUARD_DISABLED_FEATURES_SET Une application d'administration a désactivé des fonctionnalités de l'écran de verrouillage d'un appareil ou d'un profil professionnel.
TAG_KEY_DESTRUCTION Tentative de suppression d'une clé cryptographique.
TAG_KEY_GENERATED Tentative de génération d'une nouvelle clé cryptographique.
TAG_KEY_IMPORT Tentative d'importation d'une nouvelle clé cryptographique.
TAG_KEY_INTEGRITY_VIOLATION Android a détecté une clé de chiffrement ou d'authentification endommagée.
TAG_LOGGING_STARTED La journalisation de sécurité a démarré l'enregistrement.
TAG_LOGGING_STOPPED La journalisation de la sécurité a arrêté l'enregistrement.
TAG_LOG_BUFFER_SIZE_CRITICAL Le tampon du journal de sécurité a atteint 90% de sa capacité.
TAG_MAX_PASSWORD_ATTEMPTS_SET Une application d'administration a défini le nombre maximal autorisé de saisies d'un mot de passe incorrect.
TAG_MAX_SCREEN_LOCK_TIMEOUT_SET Une application d'administration a défini un délai maximal de verrouillage de l'écran.
TAG_MEDIA_MOUNT Le support de stockage amovible installé sur l'appareil
TAG_MEDIA_UNMOUNT L'appareil a démonté un support de stockage amovible.
TAG_OS_SHUTDOWN Le système Android s'est arrêté.
TAG_OS_STARTUP Le système Android a démarré.
TAG_PASSWORD_COMPLEXITY_SET Une application d'administration définit des exigences de complexité des mots de passe.
TAG_PASSWORD_EXPIRATION_SET Une application d'administration a défini un délai d'expiration du mot de passe.
TAG_PASSWORD_HISTORY_LENGTH_SET Une application d'administration a défini une longueur de l'historique des mots de passe, empêchant ainsi les utilisateurs de réutiliser d'anciens mots de passe.
TAG_REMOTE_LOCK Une application d'administration a verrouillé l'appareil ou le profil professionnel.
TAG_USER_RESTRICTION_ADDED Une application d'administration a défini une restriction utilisateur.
TAG_USER_RESTRICTION_REMOVED Une application d'administration a supprimé une restriction utilisateur.
TAG_WIPE_FAILURE Échec de la tentative d'effacement d'un appareil ou d'un profil professionnel.

Question d'authentification via l'écran de verrouillage du profil professionnel

À partir d'Android 9, les propriétaires de profil peuvent exiger des utilisateurs qu'ils définissent un verrouillage distinct un test d'authentification à l'écran pour leur profil professionnel Restriction utilisateur DISALLOW_UNIFIED_PASSWORD. À vérifier si un utilisateur a défini la même question d'authentification sur l'écran de verrouillage sur son appareil et profil professionnel, appel DevicePolicyManager.isUsingUnifiedPassword()

Si un appareil dispose d'un écran de verrouillage distinct pour le profil professionnel, DevicePolicyManager.setMaximumTimeToLock() définit uniquement un délai de verrouillage de l'écran de verrouillage pour le profil professionnel plutôt que pour l'ensemble de l'appareil.

Accès aux outils pour les développeurs

Pour vous aider à conserver les données professionnelles dans le profil professionnel, l'outil Android Debug Bridge (adb) ne peuvent pas accéder aux répertoires ni aux fichiers du profil professionnel.

Prise en charge de davantage d'options biométriques

Android 9 ajoute un contrôle ultraprécis sur l'authentification matérielle biométrique dans un l'écran de verrouillage du profil professionnel. Appelez la méthode DevicePolicyManager.setKeyguardDisabledFeatures() avec KEYGUARD_DISABLE_FACE et KEYGUARD_DISABLE_IRIS Pour désactiver toutes les méthodes d'authentification biométrique fournies par l'appareil, ajoutez KEYGUARD_DISABLE_BIOMETRICS.

Abandon des règles d'administration des appareils

Android 9 marque les règles listées ci-dessous comme obsolètes pour les DPC utilisant des appareils administrateur. Les règles continuent de fonctionner sur Android 9 comme précédemment. À partir de la version Android 10, les mêmes stratégies génèrent une SecurityException lorsqu'elles sont appelées par un administrateur de l'appareil.

Certaines applications utilisent l'administration des appareils pour le grand public. Pour comme le verrouillage et l'effacement d'un appareil égaré. Les règles suivantes continueront pour activer cette fonctionnalité:

Pour en savoir plus sur ces modifications, consultez Administration de l'appareil abandon.

Enregistrement simplifié des codes QR

Bibliothèque de codes QR intégrée

Android 9 est fourni avec une bibliothèque de codes QR pour permettre aux appareils dotés d'un code QR de simplifier le processus. et le provisionnement. Les administrateurs informatiques n'ont plus besoin de saisir manuellement les informations Wi-Fi pour configurer un appareil. Android 9 permet d'inclure ces informations Wi-Fi à la place. dans un code QR. Lorsqu'un administrateur informatique scanne le code QR avec le compte l'appareil se connecte automatiquement au Wi-Fi et entre dans le provisionnement sans intervention manuelle supplémentaire.

La méthode de provisionnement par code QR est compatible avec les extras de provisionnement suivants : spécifiez les détails du réseau Wi-Fi:

Définir la date et le fuseau horaire à l'aide des options de provisionnement supplémentaires

La méthode de provisionnement par code QR prend en charge les extras de provisionnement pour définir l'heure et fuseau horaire d'un appareil:

Options d'effacement des données

Les administrateurs des appareils peuvent afficher un message personnalisé aux utilisateurs lorsqu'ils suppriment un devoir. profil ou utilisateur secondaire. Le message aide les utilisateurs d'appareils à comprendre que leur L'administrateur informatique a supprimé le profil professionnel ou l'utilisateur secondaire. Appeler wipeData(int, CharSequence) et fournissez une courte message explicatif. Lorsque l'utilisateur principal ou le propriétaire de l'appareil l'appellent, le système n'affiche pas de message et commence à rétablir la configuration d'usine de l'appareil.

Pour supprimer les données d'abonnement d'une carte SIM eUICC intégrée, appelez wipeData() et inclure WIPE_EUICC dans flags .

Méthodes à suivre pour les propriétaires de fiches affiliés

Les méthodes suivantes sont disponibles pour les fiches affiliées propriétaires: