Tâches de gestion types

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 de setAvailableProductSet.
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:

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 List searchProducts(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;
}