Typische Verwaltungsaufgaben

EMM-Anbieter können eine Reihe typischer Verwaltungsaufgaben in ihre Unternehmenslösungen für Android implementieren, wie z. B. die in diesem Leitfaden beschriebenen Aufgaben. Im Beispielcode wird die Google Play EMM API-Clientbibliothek für Java® verwendet.

Nutzer suchen und Nutzerdetails abrufen

Viele der Google Play EMM APIs erfordern neben einer enterpriseId auch ein userId, um einige nutzerbezogene Aufgaben auszuführen, z. B. die Installation einer App, den Erhalt von Berechtigungen und die Lizenzierung. Für einige Aufrufe ist ein Nutzerobjekt erforderlich.

Wenn eine Organisation Managed Google Play-Konten verwendet, verknüpfen Sie die E-Mail-Adressen der Nutzer mit den Nutzer-IDs für diese Konten. Mit Google-Konten verwenden Sie UsersListResponse.

Nutzer suchen

In diesem Codebeispiel werden Nutzer-IDs abgerufen, die mit Google-Konten verknüpft sind. Sie gilt nicht für Organisationen, die Managed Google Play-Konten verwenden.

In diesem Beispiel wird davon ausgegangen, dass Sie die Modelle User und UsersListResponse in Ihren Code importiert haben. Um ein bestimmtes Nutzerkonto abzurufen, rufen Sie seine userId ab, indem Sie enterpriseId und die E-Mail an UsersListResponse übergeben.

public UsersListResponse list(String enterpriseId, String email) throws
   IOException {
    return androidEnterprise
        .users()
        .list(enterpriseId, email)
        .execute();
}

Nutzerdetails abrufen

Sobald du die userId hast, kannst du andere Details abrufen. Siehe Users.Get.

public User get(String enterpriseId, String userId) throws IOException {
    return androidEnterprise
        .users()
        .get(enterpriseId, userId)
        .execute();
}

Nutzern Zugriff auf Apps gewähren

Mit den Google Play EMM APIs können Sie steuern, auf welche Apps ein Nutzer über den Managed Google Play Store zugreifen kann. Der Zugriff auf eine Anwendung umfasst die Möglichkeit, nach ihr zu suchen, sie anzusehen, zu installieren und zu aktualisieren. Es gibt drei verschiedene Zugriffsebenen:

  • Nur zugelassene Apps:Der Nutzer hat nur Zugriff auf bestimmte Apps.
  • Alle genehmigten Apps:Der Nutzer hat Zugriff auf alle Apps, die für das Unternehmen genehmigt sind.
  • Alle Apps:Der Nutzer hat Zugriff auf alle Apps, die im Google Play Store öffentlich verfügbar sind.

Nutzern nur Zugriff auf bestimmte Apps gewähren

Das folgende Beispiel zeigt, wie einem Nutzer Zugriff auf eine bestimmte Gruppe von Apps aus dem Managed Google Play Store gewährt wird. Der Prozess umfasst die folgenden Schritte:

  • Erstellen Sie eine Liste von productIds (Apps), die für den Nutzer genehmigt wurden (productSet).
  • Geben Sie an, dass der Nutzer nur auf Apps auf der angegebenen Liste zugreifen kann, indem Sie den Wert des productSetBehavior-Strings auf "whitelist" setzen.
  • Wenden Sie die Liste der productIds und die Verhaltenseinstellung mithilfe von setAvailableProductSet auf die verfügbare Produktgruppe des Nutzers an.
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();
}

Nutzern Zugriff auf alle genehmigten Apps gewähren

Das folgende Beispiel zeigt, wie einem Nutzer Zugriff auf jede App gewährt wird, die aus dem Managed Google Play Store für das Unternehmen genehmigt wurde. Der Prozess umfasst die folgenden Schritte:

  • Gib an, dass der Nutzer auf alle für das Unternehmen genehmigten Apps zugreifen kann, indem du den Wert des productSetBehavior-Strings auf "allApproved" setzt.
  • Wenden Sie diese Einstellung mithilfe von setAvailableProductSet auf den Nutzer an.
public ProductSet setUserIncludeApprovedApps(String enterpriseId, String userId)
    throws IOException {
  ProductSet productSet = new ProductSet();
  productSet.setProductSetBehavior("allApproved");

  return androidEnterprise
      .users()
      .setAvailableProductSet(enterpriseId, userId, productSet)
      .execute();
}

Hinweis: Wenn productSetBehavior auf "allApproved" gesetzt ist, müssen Sie für das productSet keine productIds angeben.

Nutzern Zugriff auf alle Apps gewähren

Das folgende Beispiel zeigt, wie einem Nutzer die Möglichkeit gegeben wird, über den Managed Google Play Store auf jede App zuzugreifen, die im öffentlichen Google Play Store verfügbar ist. Nutzer mit Zugriff auf alle Apps sehen weiterhin nur das Store-Layout für ihr Unternehmen, wenn sie den Managed Play Store öffnen, können aber über die Suche weitere Apps finden.

Bestimmte vertrauenswürdige Nutzer, z. B. IT-Administratoren, benötigen möglicherweise diese höhere Zugriffsebene, um Anwendungen zu testen und zu bewerten, bevor sie für das Unternehmen genehmigt werden. So wird einem Nutzer Zugriff auf alle Anwendungen gewährt:

  • Gib an, dass der Nutzer auf alle Apps im Google Play Store zugreifen kann, indem du den Wert des productSetBehavior-Strings auf "includeAll" setzt.
  • Wenden Sie diese Einstellung mithilfe von setAvailableProductSet auf den Nutzer an.
public ProductSet setUserIncludeAllApps(String enterpriseId, String userId)
    throws IOException {
  ProductSet productSet = new ProductSet();
  productSet.setProductSetBehavior("includeAll");

  return androidEnterprise
      .users()
      .setAvailableProductSet(enterpriseId, userId, productSet)
      .execute();
}

Hinweis: Wenn productSetBehavior auf "includeAll" gesetzt ist, müssen Sie für das productSet keine productIds angeben.

Store-Layout erstellen

Nachdem Sie Nutzern Zugriff auf Apps gewährt haben, gruppieren Sie die Apps in Clustern, damit sie im Managed Google Play Store angezeigt werden.

Mit den APIs Storelayoutpages und Storelayoutclusters kannst du für jeden deiner Kunden ein individuelles, individuelles Shop-Layout erstellen. Ein typisches Layout besteht aus einer Reihe von Seiten, die jeweils Cluster von Anwendungen enthalten können. Sie können verwandte Anwendungen in denselben Cluster aufnehmen. Weitere Informationen und Beispielcode finden Sie unter Benutzerdefinierte Store-Layouts erstellen.

Berechtigungen einer App abrufen

Um eine App einem benutzerdefinierten Store-Layout hinzuzufügen (oder eine App automatisch auf dem Gerät eines Nutzers zu installieren) und die App so anzeigen zu lassen, dass der Nutzer sie auswählen kann, muss der Administrator die Berechtigungen für diese App für die gesamte Organisation akzeptieren. Administratoren können App-Berechtigungen akzeptieren und Apps in der Managed Google Play Console als für den Vertrieb genehmigt kennzeichnen. Weitere Informationen finden Sie in der Übersicht zu Managed Google Play.

Als Best Practice empfehlen wir, den iFrame für Berechtigungen in Ihre EMM-Konsole einzubetten. Das bedeutet, dass der Nutzer nicht separat zur Managed Google Play Console wechseln muss. Rufen Sie mit Products.getApprovalUrl die URL des iFrames ab.

public String getApprovalUrl(String enterpriseId, String productId)
    throws IOException {
  return androidEnterprise
      .products()
      .generateApprovalUrl(enterpriseId, productId)
      .execute()
      .getUrl();
}

Verwenden Sie Products.approve, um diese Berechtigungen zu akzeptieren.

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

Nutzergeräte abrufen

Für gerätespezifische Aktionen müssen Sie die einem Nutzer zugeordneten Geräte identifizieren. In diesem Beispiel wird die Liste der Geräte für einen bestimmten userID mithilfe von DevicesListResponse zurückgegeben.

public DevicesListResponse list(String enterpriseId, String userId) throws
   IOException {

    return androidEnterprise
        .devices()
        .list(enterpriseId, userId)
        .execute();
}

Wenn der Nutzer beim ersten Zugriff auf Managed Google Play den Nutzungsbedingungen zugestimmt hat, werden nicht verwaltete Geräte (Geräte mit dem Verwaltungstyp unmanagedProfile) in der Antwort berücksichtigt.

Status eines Geräts abrufen und festlegen

Diese Verwaltungsaufgabe gilt nur für Organisationen, die Google-Konten verwenden. Sie gilt nicht für Organisationen, die Managed Google Play-Konten verwenden.

Wenn das verwaltete Google-Konto des Nutzers auf einem verwalteten Gerät aktiviert ist, wird der Zugriff auf Google-Dienste anhand folgender Kriterien aktiviert (oder deaktiviert):

Wenn die EMM-Erzwingung deaktiviert ist, wird der Gerätestatus ignoriert und das Konto erhält Zugriff auf Google-Dienste, sobald es auf einem Android-Gerät aktiviert wird. Wenn die EMM-Erzwingung aktiviert ist, der Gerätestatus jedoch nicht, können Nutzer keine Apps aus Google Play installieren. Außerdem können über Google Play EMM APIs keine unbemerkten Apps für diesen Nutzer auf dem Gerät installiert werden.

In diesem Beispiel wird gezeigt, wie der Status eines bestimmten Geräts abgerufen wird, indem enterpriseId, userId und deviceId übergeben werden.

Die Vorgänge getState() und setState() funktionieren nur bei Geräten mit einer managementType von managedDevice oder managedProfile (auf der Ressource Devices). Geräte mit einem managementType von unmanagedProfile können nicht mit diesen APIs gesteuert werden.

public DeviceState getState(String enterpriseId, String userId, String
   deviceId) throws IOException {

    return androidEnterprise
        .devices()
        .getState(enterpriseId, userId, deviceId)
        .execute();
}

Sie können Google-Dienste für das Konto auf einem Gerät aktivieren oder deaktivieren. Dazu setzen Sie den String AccountState auf die entsprechende Konstante.

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

Push-Installation einer App auf einem Gerät

Administratoren können Anwendungen im Hintergrund installieren. Eine Nutzerinteraktion ist nicht erforderlich. In diesem Beispiel wird Installs.Update verwendet, um eine App (gekennzeichnet durch productId) automatisch auf einem Gerät (gekennzeichnet durch deviceId) zu installieren.

public Install update(String enterpriseId, String userId, String
   deviceId, String productId) throws IOException {

    return androidEnterprise
        .installs()
        .update(enterpriseId, userId, deviceId, productId,
           new Install())
        .execute();
}

Wenn die App bereits auf dem Gerät vorhanden ist und eine aktualisierte Version verfügbar ist, wird sie auf die neue Version aktualisiert.

In der Liste der genehmigten Apps nach Apps suchen und diese abrufen

Administratoren erstellen und verwalten eine Liste der genehmigten Apps, die für ihre Nutzer im Managed Play Store verfügbar sind. Nutzer von BYOD-Geräten mit Arbeitsprofilen und Nutzer von unternehmenseigenen Geräten, auf denen das gesamte Gerät von der Organisation verwaltet wird, können nur Apps aus dieser Liste herunterladen.

Sie können die EMM-Konsole so anpassen, dass sie ein Suchfeld enthält, damit Administratoren nur in der Liste der genehmigten Apps nach Apps suchen können. Für die Suchfunktion sind dieselben Parameter wie für die standardmäßige Suchfunktion von Managed Google Play zulässig. Es wird jedoch nur nach Apps auf der Liste der genehmigten Apps gesucht.

Wenn der Administrator beispielsweise eine App aus der Liste der genehmigten Apps per Push auf Geräte in seinem Unternehmen installieren möchte, kann er diese Suchfunktion in der EMM-Konsole verwenden, um die App zu finden.

In der Abfrage können Sie die maximale Anzahl von Produkten angeben, die Ihr Ergebnis enthalten soll, z. B. setMaxResults(10L), gerade genug, um den Bildschirm zu füllen. Der Standardwert ist 100. Dies ist auch der Höchstwert, der auf einmal zurückgegeben werden kann. Wenn das Ergebnis ein Paginierungstoken enthält, können Sie mehr Ergebnisse abrufen, indem Sie das Paginierungstoken übergeben.

In diesem Beispiel wird gezeigt, wie Sie die ersten zehn Ergebnisse einer Suche nach Produktivitäts-Apps erhalten. Products.List ansehen.

public List searchProducts(String enterpriseId) throws IOException {
  ProductsListResponse executeResult =
      androidEnterprise
          .products()
          .list(enterpriseId)
          .setMaxResults(10L)
          .setQuery("productivity")
          .execute();
  return executeResult.getProduct();
}

Wenn das Suchergebnis ein Paginierungstoken enthält, hat die Suche mehr als setMaxResults Ergebnisse oder in diesem Beispiel mehr als 10 Ergebnisse zurückgegeben. Wiederholen Sie die Suche und fügen Sie das Paginierungstoken in die Anfrage ein, um weitere Ergebnisse abzurufen. In diesem Beispiel werden die nächsten zehn Ergebnisse zurückgegeben.

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