Typowe zadania związane z zarządzaniem

Dostawcy usług EMM mogą wdrażać w swoich rozwiązaniach firmowych na Androida szereg typowych zadań związanych z zarządzaniem, takich jak zadania opisane w tym przewodniku. Przykładowy kod korzysta z biblioteki klienta interfejsu Google Play EMM API dla języka Java®.

Wyszukiwanie użytkowników i pobieranie informacji na ich temat

Wiele interfejsów API usług EMM w Google Play wymaga userId (oprócz enterpriseId) do wykonywania niektórych zadań powiązanych z użytkownikami, takich jak instalowanie aplikacji, uzyskiwanie uprawnień czy licencjonowanie. Niektóre wywołania wymagają obiektu użytkownika.

Jeśli organizacja korzysta z zarządzanych kont Google Play, musisz powiązać adresy e-mail użytkowników z identyfikatorami tych kont. Z kont Google korzystasz z UsersListResponse.

Wyszukaj użytkowników

Ten przykładowy kod pobiera identyfikatory użytkowników powiązane z kontami Google. Nie dotyczy to organizacji, które korzystają z zarządzanych kont Google Play.

W tym przykładzie założono, że do kodu zostały zaimportowane modele User i UsersListResponse. Aby uzyskać konkretne konto użytkownika, uzyskaj jego userId, przekazując enterpriseId i adres e-mail do UsersListResponse.

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

Pobieranie informacji o użytkowniku

Po zalogowaniu się na konto userId możesz uzyskać inne informacje. Zobacz Users.Get.

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

Przyznawanie użytkownikowi dostępu do aplikacji

Przy użyciu interfejsów API EMM w Google Play możesz kontrolować, do których aplikacji w zarządzanym Sklepie Google Play użytkownicy mają dostęp. Dostęp do aplikacji obejmuje możliwość jej wyszukiwania, wyświetlania, instalowania i aktualizowania. Dostępne są 3 poziomy dostępu:

  • Tylko aplikacje dozwolone:użytkownik ma dostęp tylko do określonych aplikacji.
  • Wszystkie zatwierdzone aplikacje: użytkownik ma dostęp do wszystkich aplikacji zatwierdzonych dla jego firmy.
  • Wszystkie aplikacje: użytkownik ma dostęp do wszystkich aplikacji, które są dostępne publicznie w Sklepie Google Play.

Przyznawanie użytkownikowi dostępu tylko do określonych aplikacji

Przykład poniżej pokazuje, jak przyznać użytkownikowi dostęp do określonego zestawu aplikacji z zarządzanego Sklepu Google Play. Proces ten obejmuje te etapy:

  • Utwórz listę productIds (aplikacje), które są zatwierdzone dla użytkownika (productSet).
  • Aby określić, że użytkownik ma dostęp tylko do aplikacji z danej listy, ustaw wartość ciągu productSetBehavior na "whitelist".
  • Zastosuj listę productIds i ustawienie zachowania do dostępnego zbioru produktów użytkownika za pomocą 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();
}

Przyznawanie użytkownikowi dostępu do wszystkich zatwierdzonych aplikacji

Poniższy przykład pokazuje, jak przyznać użytkownikowi dostęp do dowolnej aplikacji z zarządzanego Sklepu Google Play, która została zatwierdzona dla firmy. Proces ten obejmuje te etapy:

  • Aby określić, że użytkownik ma dostęp do wszystkich aplikacji zatwierdzonych dla firmy, ustaw wartość ciągu productSetBehavior na "allApproved".
  • Zastosuj to ustawienie do użytkownika korzystającego z usługi 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();
}

Uwaga: jeśli productSetBehavior ma wartość "allApproved", nie musisz określać żadnej wartości productIds w atrybucie productSet.

Przyznawanie użytkownikowi dostępu do wszystkich aplikacji

Przykład poniżej pokazuje, jak przyznać użytkownikowi w zarządzanym Sklepie Google Play możliwość dostępu do dowolnej aplikacji dostępnej w publicznym Sklepie Google Play. Użytkownicy z dostępem do wszystkich aplikacji nadal będą widzieć układ sklepu tylko dla swojej firmy po otwarciu zarządzanego Sklepu Google Play, ale mogą znaleźć dodatkowe aplikacje przez wyszukiwarkę.

Niektórzy zaufani użytkownicy, na przykład administratorzy IT, mogą wymagać wyższego poziomu dostępu do testowania i oceny aplikacji przed zatwierdzeniem ich dla firmy. Proces przyznawania użytkownikowi dostępu do wszystkich aplikacji obejmuje te etapy:

  • Aby określić, że użytkownik ma dostęp do wszystkich aplikacji w Sklepie Google Play, ustaw wartość ciągu productSetBehavior na "includeAll".
  • Zastosuj to ustawienie do użytkownika korzystającego z usługi 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();
}

Uwaga: jeśli productSetBehavior ma wartość "includeAll", nie musisz określać żadnej wartości productIds w atrybucie productSet.

Utwórz układ sklepu

Gdy przyznasz użytkownikom dostęp do aplikacji, pogrupuj je w klastry, aby wyświetlały się w zarządzanym Sklepie Google Play.

Możesz utworzyć unikalny, niestandardowy układ sklepu dla każdego klienta za pomocą interfejsów API Storelayoutpages i Storelayoutclusters. Typowy układ składa się z zestawu stron, z których każda może zawierać grupy aplikacji. Możesz umieścić powiązane aplikacje w tym samym klastrze. Więcej informacji i przykładowy kod znajdziesz w artykule Tworzenie niestandardowych układów sklepu.

Uzyskiwanie uprawnień aplikacji

Aby dodać aplikację do niestandardowego układu sklepu (lub dyskretnie zainstalować ją na urządzeniu użytkownika) i wyświetlić ją tak, aby użytkownik mógł ją wybrać, administrator musi zaakceptować uprawnienia do tej aplikacji w całej organizacji. Administratorzy mogą akceptować uprawnienia aplikacji i oznaczać aplikacje jako zatwierdzone do dystrybucji w zarządzanym Sklepie Google Play (zobacz omówienie zarządzanego Sklepu Google Play).

Zalecamy umieszczenie elementu iframe uprawnień w konsoli EMM. Oznacza to, że użytkownik nie musi przechodzić do zarządzanej Konsoli Google Play. Aby uzyskać adres URL elementu iframe, użyj parametru Products.getApprovalUrl.

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

Aby zaakceptować te uprawnienia, użyj aplikacji Products.approve.

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

Pobierz urządzenia użytkownika

Aby wykonać działania związane z konkretnym urządzeniem, musisz zidentyfikować urządzenia powiązane z użytkownikiem. W tym przykładzie zwracamy listę urządzeń powiązanych z konkretnym userID za pomocą DevicesListResponse.

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

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

Jeśli użytkownik zaakceptował Warunki korzystania z usługi wyświetlane przy pierwszej próbie uzyskania dostępu do zarządzanego Sklepu Google Play, odpowiedź będzie obejmowała urządzenia niezarządzane (urządzenia z typem zarządzania unmanagedProfile).

Pobieranie i ustawianie stanu urządzenia

To zadanie zarządzania dotyczy tylko organizacji, które używają kont Google. Nie dotyczy organizacji, które korzystają z zarządzanych kont Google Play.

Gdy zarządzane konto Google użytkownika zostanie aktywowane na urządzeniu zarządzanym, dostęp do usług Google jest włączony (lub wyłączony) na podstawie:

Jeśli wymuszanie usług EMM jest wyłączone, stan urządzenia jest ignorowany, a konto otrzymuje dostęp do usług Google za każdym razem, gdy jest aktywowane na urządzeniu z Androidem. Jeśli wymuszanie usług EMM jest włączone, ale stan urządzenia jest inny, użytkownicy nie mogą instalować aplikacji z Google Play, a interfejsy API usług EMM w Google Play nie mogą dyskretnie instalować aplikacji dla danego użytkownika na urządzeniu.

W tym przykładzie pokazujemy, jak uzyskać stan danego urządzenia (określony za pomocą wartości enterpriseId, userId i deviceId).

Operacje getState() i setState() działają tylko na urządzeniach z managementType o wartości managedDevice lub managedProfile (w zasobie Devices). Urządzeń, których managementType ma wartość unmanagedProfile, nie można sterować przy użyciu tych interfejsów API.

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

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

Włącz lub wyłącz usługi Google na koncie na urządzeniu, ustawiając ciąg AccountState na odpowiednią stałą wartość.

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

Instalowanie aplikacji na urządzeniu w trybie push

Administratorzy mogą dyskretnie instalować aplikacje. Interakcja z użytkownikiem nie jest wymagana. W tym przykładzie Installs.Update służy do dyskretnego zainstalowania aplikacji (zidentyfikowanej przez productId) na urządzeniu (identyfikowanym przez 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();
}

Jeśli aplikacja już znajduje się na urządzeniu i jest dostępna jej zaktualizowana wersja, aplikacja zostanie zaktualizowana do nowej wersji.

wyszukiwać aplikacje na liście zatwierdzonych i pobierać je z tej listy;

Administratorzy tworzą listę zatwierdzonych aplikacji dostępnych dla użytkowników w zarządzanym Sklepie Google Play i zarządzają nią. Użytkownicy urządzeń własnych z profilami służbowymi i użytkownicy urządzeń firmowych, których całe urządzenie jest zarządzane przez organizację, mogą pobierać aplikacje tylko z tej listy zatwierdzonych.

W konsoli EMM możesz umieścić pole wyszukiwania, aby administratorzy mogli wyszukiwać aplikacje tylko z listy zatwierdzonych. Funkcja wyszukiwania akceptuje te same parametry co standardowa funkcja wyszukiwania w zarządzanym Sklepie Google Play, ale wyszukuje tylko aplikacje z listy zatwierdzonych aplikacji.

Jeśli na przykład administrator chce zainstalować aplikację z listy zatwierdzonych aplikacji na urządzeniach w firmie, może użyć funkcji wyszukiwania w konsoli EMM, aby ją znaleźć.

W zapytaniu możesz określić maksymalną liczbę produktów, które powinien zawierać wynik (np. setMaxResults(10L)), aby zapełnić ekran. Wartością domyślną jest 100 i jest to maksymalna liczba, którą można zwrócić jednocześnie. Gdy wynik zawiera token podziału na strony, można pobrać więcej wyników, przekazując token podziału na strony.

Ten przykład pokazuje, jak wyświetlić pierwsze 10 wyników wyszukiwania aplikacji zwiększających produktywność. Zobacz Products.List.

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

Jeśli wynik wyszukiwania zawiera token podziału na strony, wyszukiwanie zwróciło więcej niż setMaxResults lub w tym przykładzie więcej niż 10. Aby uzyskać więcej wyników, powtórz wyszukiwanie i umieść w żądaniu token podziału na strony. W tym przykładzie można uzyskać następne 10 wyników.

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