Tâches de gestion types

Les EMM peuvent implémenter diverses tâches de gestion classiques dans leurs solutions d'entreprise pour Android, telles que les tâches présentées dans ce guide. L'exemple de code utilise la bibliothèque cliente de l'API Google Play EMM 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, telles que l'installation d'une application, l'obtention de droits d'accès et l'attribution de licences. Certains appels nécessitent un objet utilisateur.

Si une organisation utilise des comptes Google Play d'entreprise, vous conservez le mappage entre les adresses e-mail des utilisateurs et les ID utilisateur de ces comptes. Avec un compte Google, vous utilisez UsersListResponse.

Rechercher des utilisateurs

Cet exemple de code permet d'obtenir les ID utilisateur associés aux 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, obtenez 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 les informations sur l'utilisateur

Une fois que vous disposez de userId, vous pouvez récupérer d'autres informations. Voir 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 de Google Play pour contrôler les applications auxquelles un utilisateur peut accéder sur la plate-forme Google Play d'entreprise. L'accès à une application permet de : le rechercher, l'afficher, l'installer et le mettre à jour. Il existe trois méthodes d'accès niveaux 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 à des applications spécifiques

L'exemple ci-dessous montre comment accorder à un utilisateur l'accès à un ensemble spécifique d'applications. sur la plate-forme Google Play d'entreprise. Le processus comprend le procédez comme suit:

  • Collectez une liste de productIds (applications) 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 des 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 sur le Google Play Store d'entreprise. Le processus comprend le procédez comme suit:

  • 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 à l'aide de 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 une valeur productIds pour "productSet".

Autoriser un utilisateur à accéder à toutes les applications

L'exemple ci-dessous montre comment accorder à un utilisateur la possibilité d'accéder au compte Play Store pour accéder à toute application disponible dans le Google Play Store public. Les utilisateurs ayant accès à l'ensemble des applications ne voient toujours que la mise en page de leur entreprise lorsqu'il ouvre Google Play d'entreprise, mais qu'il peut trouver des applications supplémentaires en effectuant une recherche.

Certains utilisateurs de confiance, tels que les administrateurs informatiques, peuvent exiger pour tester et évaluer les applications avant de les approuver pour l'entreprise. La 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 à l'aide de 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 une valeur productIds pour "productSet".

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 type se compose d'un ensemble de pages, chacune pouvant contenir des clusters d'applications. Vous pouvez placer des 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 de magasin personnalisées.

Obtenir les autorisations d'une application

Pour ajouter une application à une mise en page personnalisée de la plate-forme de téléchargement d'applications (ou installer une application en mode silencieux sur le appareil) et afficher l'application pour que l'utilisateur puisse la sélectionner, l'administrateur doit accepter les autorisations d’accès à cette application pour l’ensemble de l’organisation. Les administrateurs peuvent accepter les autorisations des applications et marquer les applications comme approuvées en vue de leur distribution dans le Google Play Console (consultez la présentation de Google Play d'entreprise).

Nous vous recommandons d'intégrer l'iFrame d'autorisations console EMM. Ainsi, l'utilisateur n'a pas besoin d'accéder séparément à la page 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 présentées lors de sa tentative d'accès Google Play d'entreprise, la réponse inclut les appareils non gérés (appareils avec le 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é) sur la base des critères suivants:

Si l'application EMM est désactivée, l'état de l'appareil est ignoré et le compte est a accès aux services Google dès 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 les applications Google Play et les API EMM Google Play ne peuvent pas s'installer des applications 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).

getState() et les opérations setState() fonctionnent pour les appareils avec un managementType managedDevice ou managedProfile (sur la ressource Devices) uniquement. Appareils avec Une managementType de unmanagedProfile ne peut pas être contrôlée 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 paramétrant le Chaîne AccountState à 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 en mode push

Les administrateurs peuvent installer des applications en mode silencieux. L'interaction de l'utilisateur n'est pas obligatoire. Cet exemple utilise Installs.Update pour installer une application de manière silencieuse (identifiée par productId). à 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, elle est mise à jour.

Rechercher et obtenir 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 dans Google Play d'entreprise. Les utilisateurs d'appareils BYOD dotés d'un profil professionnel et les utilisateurs d'appareils professionnels dont l'intégralité de l'appareil est géré par l'organisation ne peuvent télécharger que les applications figurant sur 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 standard de Google Play d'entreprise, à la différence qu'elle ne recherche que les applications figurant dans la liste des applications approuvées.

Par exemple, si l'administrateur souhaite déployer une application figurant dans la liste des applications approuvées sur les appareils de son entreprise, il peut utiliser la fonction de recherche de la console EMM pour la trouver.

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é simultanément. 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 recherche contient un jeton de pagination, la recherche a produit plus de setMaxResults résultats (ou plus de 10 dans cet exemple). Pour récupérer davantage de résultats, recommencez la recherche et incluez le jeton de pagination dans la requête. Dans cet exemple, les 10 résultats suivants sont obtenus.

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;
}