Dans leurs solutions d'entreprise pour Android, les EMM peuvent implémenter diverses tâches de gestion classiques, telles que les tâches présentées dans ce guide. L'exemple de code utilise la bibliothèque cliente de l'API EMM Google Play pour Java®.
Rechercher des utilisateurs et obtenir des informations les concernant
De nombreuses API EMM Google Play nécessitent un userId
(en plus d'un enterpriseId
) pour effectuer certaines tâches associées à l'utilisateur, comme installer une application, obtenir des droits d'accès et attribuer des licences. Certains appels nécessitent un objet utilisateur.
Si une organisation utilise des comptes Google Play d'entreprise, vous établissez un mappage entre les adresses e-mail des utilisateurs et les ID utilisateur de ces comptes. Avec les comptes Google, vous utilisez UsersListResponse
.
Rechercher des utilisateurs
Cet exemple de code obtient les ID utilisateur associés à des comptes Google. Il ne s'applique pas aux organisations qui utilisent des comptes Google Play d'entreprise.
Cet exemple suppose que vous avez importé les modèles User
et UsersListResponse
dans votre code. Pour obtenir un compte utilisateur spécifique, récupérez son userId
en transmettant le enterpriseId
et l'adresse e-mail à UsersListResponse
.
public UsersListResponse list(String enterpriseId, String email) throws IOException { return androidEnterprise .users() .list(enterpriseId, email) .execute(); }
Obtenir des informations sur l'utilisateur
Une fois que vous disposez de l'userId
, vous pouvez récupérer d'autres informations. Consultez Users.Get
.
public User get(String enterpriseId, String userId) throws IOException { return androidEnterprise .users() .get(enterpriseId, userId) .execute(); }
Autoriser un utilisateur à accéder aux applications
Vous pouvez utiliser les API EMM Google Play pour contrôler les applications auxquelles un utilisateur peut accéder depuis le Google Play Store d'entreprise. L'accès à une application permet de la rechercher, de l'afficher, de l'installer et de la mettre à jour. Trois niveaux d'accès différents sont disponibles:
- Applications autorisées uniquement:l'utilisateur n'a accès qu'à certaines applications.
- Toutes les applications approuvées:l'utilisateur a accès à toutes les applications approuvées pour l'entreprise.
- Toutes les applications:l'utilisateur a accès à toutes les applications publiques sur le Google Play Store.
Autoriser un utilisateur à accéder uniquement à certaines applications
L'exemple ci-dessous montre comment accorder à un utilisateur l'accès à un ensemble spécifique d'applications à partir du Google Play Store d'entreprise. Ce processus comprend les étapes suivantes:
- Collectez une liste d'
productIds
(applications) qui sont approuvées pour l'utilisateur (productSet). - Spécifiez que l'utilisateur ne peut accéder qu'aux applications de la liste donnée en définissant la valeur de la chaîne
productSetBehavior
sur"whitelist"
. - Appliquez la liste de
productIds
et le paramètre de comportement à l'ensemble de produits disponible de l'utilisateur à l'aide desetAvailableProductSet
.
public ProductSet setProductSet(String enterpriseId, String userId, List<String> productIds) throws IOException { ProductSet productSet = new ProductSet(); productSet.setProductId(productIds); productSet.setProductSetBehavior("whitelist"); return androidEnterprise .users() .setAvailableProductSet(enterpriseId, userId, productSet) .execute(); }
Autoriser un utilisateur à accéder à toutes les applications approuvées
L'exemple ci-dessous montre comment accorder à un utilisateur l'accès à toute application approuvée pour l'entreprise à partir du Google Play Store d'entreprise. Ce processus comprend les étapes suivantes:
- Spécifiez que l'utilisateur peut accéder à toutes les applications approuvées pour l'entreprise en définissant la valeur de la chaîne
productSetBehavior
sur"allApproved"
. - Appliquez ce paramètre à l'utilisateur avec
setAvailableProductSet
.
public ProductSet setUserIncludeApprovedApps(String enterpriseId, String userId) throws IOException { ProductSet productSet = new ProductSet(); productSet.setProductSetBehavior("allApproved"); return androidEnterprise .users() .setAvailableProductSet(enterpriseId, userId, productSet) .execute(); }
Remarque:Lorsque productSetBehavior
est défini sur "allApproved"
, vous n'avez pas besoin de spécifier un productIds
pour l'ensemble de produits.
Autoriser un utilisateur à accéder à toutes les applications
L'exemple ci-dessous montre comment autoriser un utilisateur à accéder au Google Play Store d'entreprise à n'importe quelle application disponible sur le Google Play Store public. Les utilisateurs ayant accès à toutes les applications ne voient toujours que la disposition du Play Store de leur entreprise lorsqu'ils ouvrent Google Play d'entreprise. Toutefois, ils peuvent trouver des applications supplémentaires par le biais d'une recherche.
Certains utilisateurs de confiance, tels que les administrateurs informatiques, peuvent avoir besoin de ce niveau d'accès plus élevé pour tester et évaluer des applications avant de les approuver pour l'entreprise. Pour accorder à un utilisateur l'accès à toutes les applications, procédez comme suit:
- Spécifiez que l'utilisateur peut accéder à toutes les applications du Google Play Store en définissant la valeur de la chaîne
productSetBehavior
sur"includeAll"
. - Appliquez ce paramètre à l'utilisateur avec
setAvailableProductSet
.
public ProductSet setUserIncludeAllApps(String enterpriseId, String userId) throws IOException { ProductSet productSet = new ProductSet(); productSet.setProductSetBehavior("includeAll"); return androidEnterprise .users() .setAvailableProductSet(enterpriseId, userId, productSet) .execute(); }
Remarque:Lorsque productSetBehavior
est défini sur "includeAll"
, vous n'avez pas besoin de spécifier un productIds
pour l'ensemble de produits.
Créer une mise en page de magasin
Après avoir autorisé les utilisateurs à accéder aux applications, regroupez-les en clusters pour les afficher sur la plate-forme Google Play d'entreprise.
Vous pouvez créer une mise en page de magasin unique et personnalisée pour chacun de vos clients à l'aide des API Storelayoutpages
et Storelayoutclusters
. Une mise en page typique se compose d'un ensemble de pages, chacune pouvant contenir des clusters d'applications. Vous pouvez placer les applications associées dans le même cluster. Pour en savoir plus et obtenir un exemple de code, consultez Créer des mises en page personnalisées pour les magasins.
Obtenir les autorisations d'une application
Pour ajouter une application à une mise en page de plate-forme personnalisée (ou installer silencieusement une application sur l'appareil d'un utilisateur) et afficher l'application afin que l'utilisateur puisse la sélectionner, l'administrateur doit accepter les autorisations correspondantes pour l'ensemble de l'organisation. Les administrateurs peuvent accepter les autorisations des applications et marquer les applications comme approuvées pour distribution dans la Google Play d'entreprise (consultez la présentation de Google Play d'entreprise).
Nous vous recommandons d'intégrer l'iFrame d'autorisations à votre console EMM. Cela signifie que l'utilisateur n'a pas besoin d'accéder séparément à la Google Play Console d'entreprise. Utilisez Products.getApprovalUrl
pour obtenir l'URL de l'iFrame.
public String getApprovalUrl(String enterpriseId, String productId) throws IOException { return androidEnterprise .products() .generateApprovalUrl(enterpriseId, productId) .execute() .getUrl(); }
Utilisez Products.approve
pour accepter ces autorisations.
public void approveProduct(String enterpriseId, String productId, String approvalUrl) throws IOException { ProductsApproveRequest productsApproveRequest = new ProductsApproveRequest() .setApprovalUrlInfo( new ApprovalUrlInfo().setApprovalUrl(approvalUrl)); androidEnterprise .products() .approve(enterpriseId, productId, productsApproveRequest) .execute(); }
Obtenir les appareils d'un utilisateur
Pour effectuer des actions spécifiques à un appareil, vous devez identifier les appareils associés à un utilisateur. Cet exemple renvoie la liste des appareils pour un userID
donné à l'aide de DevicesListResponse
.
public DevicesListResponse list(String enterpriseId, String userId) throws IOException { return androidEnterprise .devices() .list(enterpriseId, userId) .execute(); }
Si l'utilisateur a accepté les conditions d'utilisation lorsqu'il a tenté d'accéder à Google Play d'entreprise pour la première fois, la réponse inclut les appareils non gérés (appareils dotés du type de gestion unmanagedProfile
).
Obtenir et définir l'état d'un appareil
Cette tâche de gestion ne concerne que les organisations qui utilisent des comptes Google. Il ne s'applique pas aux organisations qui utilisent des comptes Google Play d'entreprise.
Lorsque le compte Google géré de l'utilisateur est activé sur un appareil géré, l'accès aux services Google est activé (ou désactivé) en fonction des paramètres suivants:
- État de l'appareil.
- si l'administrateur du domaine a appliqué des règles EMM (en définissant Appliquer les règles EMM sur les appareils Android dans la console d'administration Google) ;
Si l'application des fournisseurs EMM est désactivée, l'état de l'appareil est ignoré, et le compte est autorisé à accéder aux services Google chaque fois qu'il est activé sur un appareil Android. Si l'application EMM est activée, mais que l'état de l'appareil ne l'est pas, les utilisateurs ne peuvent pas installer d'applications à partir de Google Play, et les API EMM Google Play ne peuvent pas installer d'applications de manière silencieuse pour cet utilisateur sur l'appareil.
Cet exemple montre comment obtenir l'état d'un appareil donné (spécifié en transmettant enterpriseId
, userId
et deviceId
).
Les opérations getState()
et setState()
ne fonctionnent que pour les appareils dont le managementType
est managedDevice
ou managedProfile
(sur la ressource Devices
). Les appareils avec une managementType
de unmanagedProfile
ne peuvent pas être contrôlés avec ces API.
public DeviceState getState(String enterpriseId, String userId, String deviceId) throws IOException { return androidEnterprise .devices() .getState(enterpriseId, userId, deviceId) .execute(); }
Activez ou désactivez les services Google pour le compte sur un appareil en définissant la chaîne AccountState
sur la constante appropriée.
public DeviceState setState(String enterpriseId, String userId, String deviceId, String accountState) throws IOException { DeviceState deviceState = new DeviceState(); deviceState.setAccountState(accountState); return androidEnterprise .devices() .setState(enterpriseId, userId, deviceId, deviceState) .execute(); }
Installer une application sur un appareil via une méthode push
Les administrateurs peuvent installer des applications en arrière-plan. Aucune interaction de l'utilisateur n'est requise.
Cet exemple utilise Installs.Update
pour installer silencieusement une application (identifiée par productId
) sur un appareil (identifié par deviceId
).
public Install update(String enterpriseId, String userId, String deviceId, String productId) throws IOException { return androidEnterprise .installs() .update(enterpriseId, userId, deviceId, productId, new Install()) .execute(); }
Si l'application existe déjà sur l'appareil et qu'une version mise à jour est disponible, la nouvelle version l'est.
Rechercher et récupérer des applications dans la liste des applications approuvées
Les administrateurs créent et gèrent une liste d'applications approuvées qui sont mises à la disposition de leurs utilisateurs sur Google Play d'entreprise. Les utilisateurs d'appareils BYOD dotés d'un profil professionnel ou d'appareils professionnels dont l'intégralité de l'appareil est géré par l'organisation ne peuvent télécharger des applications que dans cette liste approuvée.
Vous pouvez personnaliser votre console EMM en y incluant un champ de recherche permettant aux administrateurs de rechercher des applications uniquement dans la liste des applications approuvées. La fonction de recherche accepte les mêmes paramètres qu'une fonction de recherche Google Play d'entreprise standard. Toutefois, elle recherche uniquement les applications figurant dans la liste des applications approuvées.
Par exemple, si l'administrateur souhaite déployer une application de la liste des applications approuvées sur les appareils de son entreprise, il peut utiliser cette fonction de recherche de la console EMM pour trouver l'application.
Dans votre requête, vous pouvez spécifier le nombre maximal de produits que votre résultat doit contenir (par exemple, setMaxResults(10L)
), juste assez pour remplir l'écran. La valeur par défaut est 100, ce qui correspond au maximum pouvant être renvoyé en une seule fois. Lorsque le résultat contient un jeton de pagination, vous pouvez récupérer davantage de résultats en transmettant ce jeton.
Cet exemple montre comment obtenir les 10 premiers résultats d'une recherche d'applications de productivité.
Consultez les Products.List
.
public ListsearchProducts(String enterpriseId) throws IOException { ProductsListResponse executeResult = androidEnterprise .products() .list(enterpriseId) .setMaxResults(10L) .setQuery("productivity") .execute(); return executeResult.getProduct(); }
Si le résultat de la recherche contient un jeton de pagination, la recherche a généré plus de setMaxResults
résultats, ou plus de 10 dans cet exemple. Pour récupérer davantage de résultats, répétez la recherche et incluez le jeton de pagination dans la requête. Cet exemple permet d'obtenir les 10 résultats suivants.
public ProductsListResponse continueSearch( String enterpriseId, ProductsListResponse previousResponse) throws IOException { ProductsListResponse nextResults = androidEnterprise .products() .list(enterpriseId) .setMaxResults(10L) .setToken(previousResponse.getTokenPagination().getNextPageToken()) .setQuery("productivity") .execute(); return nextResults; }