Attività di gestione tipiche

I provider EMM possono implementare una serie di attività di gestione tipiche nelle loro soluzioni aziendali per Android, come le attività mostrate in questa guida. Il codice di esempio utilizza la libreria client dell'API EMM di Google Play per Java®.

Cercare gli utenti e ottenere i dettagli relativi agli utenti

Molte delle API EMM di Google Play richiedono un userId (oltre a un enterpriseId) per svolgere alcune attività associate agli utenti, ad esempio installare un'app, ottenere diritti e concedere licenze. Alcune chiamate richiedono un oggetto utente.

Se un'organizzazione utilizza account della versione gestita di Google Play, manterrai una mappatura tra gli indirizzi email degli utenti e gli ID utente di questi account. Con gli Account Google utilizzi UsersListResponse.

Cerca utenti

Questo esempio di codice recupera gli ID utente associati agli Account Google. Non si applica alle organizzazioni che utilizzano account della versione gestita di Google Play.

In questo esempio si presuppone che tu abbia importato i modelli User e UsersListResponse nel tuo codice. Per ottenere un account utente specifico, recupera il relativo userId passando enterpriseId e indirizzo email a UsersListResponse.

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

Ottieni dettagli utente

Una volta che hai userId, puoi recuperare altri dettagli. Consulta Users.Get.

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

Concedere a un utente l'accesso alle app

Puoi utilizzare le API EMM di Google Play per controllare a quali app può accedere un utente dalla versione gestita di Google Play Store. L'accesso a un'app include la possibilità di cercarlo, visualizzarlo, installarlo e aggiornarlo. Esistono tre diversi tipi di accesso livelli disponibili:

  • Solo app consentite: l'utente ha accesso solo ad app specifiche.
  • Tutte le app approvate: l'utente ha accesso a tutte le app approvate. all'azienda.
  • Tutte le app: l'utente ha accesso a tutte le app disponibili pubblicamente. nel Google Play Store.

Concedere a un utente l'accesso solo a determinate app

L'esempio seguente mostra come concedere a un utente l'accesso a un insieme specifico di app dalla versione gestita di Google Play Store. La procedura include seguenti passaggi:

  • Crea un elenco di productIds (app) approvate per l'utente (productSet).
  • Specifica che l'utente può accedere solo alle app nell'elenco fornito impostando il valore della stringa productSetBehavior su "whitelist".
  • Applica l'elenco di productIds e l'impostazione del comportamento al set di prodotti disponibili dell'utente utilizzando 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();
}

Concedere a un utente l'accesso a tutte le app approvate

L'esempio seguente mostra come concedere a un utente l'accesso a qualsiasi app approvata per le aziende dalla versione gestita di Google Play Store. La procedura include seguenti passaggi:

  • Specifica che l'utente può accedere a tutte le app approvate per l'azienda impostando il valore della stringa productSetBehavior su "allApproved".
  • Applica questa impostazione all'utente utilizzando 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();
}

Nota: quando productSetBehavior è impostato su "allApproved", Non devi specificare productIds per l'oggetto productSet.

Concedere a un utente l'accesso a tutte le app

L'esempio seguente mostra come concedere a un utente la funzionalità nella Play Store per accedere a qualsiasi app disponibile nella versione pubblica di Google Play Store. Gli utenti con accesso a tutte le app continueranno a vedere solo il layout dello store per il loro per l'azienda quando apre la versione gestita di Google Play, ma può trovare altre app attraverso la ricerca.

Alcuni utenti attendibili, come gli amministratori IT, potrebbero richiedere questo maggiore livello di per testare e valutare le app prima di approvarle per l'azienda. La La procedura per concedere a un utente l'accesso a tutte le app include i seguenti passaggi:

  • Specifica che l'utente può accedere a tutte le app nel Google Play Store impostando il valore della stringa productSetBehavior su "includeAll".
  • Applica questa impostazione all'utente utilizzando 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();
}

Nota: quando productSetBehavior è impostato su "includeAll", Non devi specificare productIds per l'oggetto productSet.

Crea un layout per il negozio

Dopo aver consentito agli utenti l'accesso alle app, raggruppale in cluster per la visualizzazione nella vetrina della versione gestita di Google Play Store.

Puoi creare un layout personalizzato del negozio unico per ciascuno dei tuoi clienti utilizzando le API Storelayoutpages e Storelayoutclusters. Un layout tipico consiste in un insieme di pagine e ognuna può contenere cluster di app. Puoi inserire app correlate nello stesso cluster. Consulta Creare layout del negozio personalizzati per dettagli e codice di esempio.

Ottenere le autorizzazioni di un'app

Per aggiungere un'app a un layout di store personalizzato (o installare automaticamente un'app nella console dispositivo) e visualizzare l'app in modo che l'utente possa selezionarla, l'amministratore deve e accettare le autorizzazioni all'app per l'intera organizzazione. Gli amministratori possono accetta le autorizzazioni app e contrassegna le app come approvate per la distribuzione nella Google Play Console (consulta la panoramica della versione gestita di Google Play).

Come best practice, ti consigliamo di incorporare l'iframe delle autorizzazioni nel tuo Console EMM. Ciò significa che l'utente non deve accedere separatamente nella versione gestita di Google Play Console. Usa Products.getApprovalUrl per ottenere l'URL dell'iframe.

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

Usa Products.approve per accettare queste autorizzazioni.

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

Recuperare i dispositivi di un utente

Per eseguire azioni specifiche per un dispositivo, devi identificare i dispositivi associati un utente. Questo esempio restituisce l'elenco di dispositivi per un determinato userIDutilizzando DevicesListResponse.

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

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

Se l'utente ha accettato i Termini di servizio presentati quando ha tentato di accedere per la prima volta nella versione gestita di Google Play, la risposta include i dispositivi non gestiti (dispositivi con il tipo di gestione unmanagedProfile).

Recupera e imposta lo stato di un dispositivo

Questa attività di gestione si applica solo alle organizzazioni che utilizzano Account Google. it non si applica alle organizzazioni che utilizzano account della versione gestita di Google Play.

Quando l'Account Google gestito dell'utente viene attivato su un dispositivo gestito, accedi ai servizi Google viene attivato (o disattivato) in base a:

Se l'applicazione forzata di EMM è disattivata, lo stato del dispositivo viene ignorato e l'account viene a cui è stato concesso l'accesso ai servizi Google ogni volta che viene attivato su un dispositivo Android. Se l'applicazione forzata dell'EMM è abilitata, ma lo stato del dispositivo no, gli utenti non possono installare di Google Play e le API EMM di Google Play non possono essere installate automaticamente app per l'utente sul dispositivo.

Questo esempio mostra come ottenere lo stato di un determinato dispositivo (specificato passando enterpriseId, userId e deviceId).

getState() e le operazioni di setState() funzionano per i dispositivi con un managementType di Solo managedDevice o managedProfile (nella risorsa Devices). Dispositivi con Non è possibile controllare un managementType di unmanagedProfile con queste API.

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

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

Attiva o disattiva i servizi Google per l'account su un dispositivo impostando l'opzione AccountState stringa alla costante appropriata.

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

Installazione push di un'app su un dispositivo

Gli amministratori possono installare le applicazioni in modo invisibile all'utente. L'interazione dell'utente non è obbligatoria. In questo esempio viene utilizzata l'istruzione Installs.Update per installare automaticamente un'app (identificata da productId) a un dispositivo (identificato da 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();
}

Se l'app esiste già sul dispositivo ed è disponibile una versione aggiornata, l'app viene aggiornata alla nuova versione.

Cercare e scaricare app dall'elenco delle applicazioni approvate

Gli amministratori creano e gestiscono un elenco di app approvate disponibili per i loro utenti nella versione gestita di Google Play. Gli utenti che utilizzano dispositivi BYOD con profili di lavoro e gli utenti che utilizzano dispositivi aziendali in cui l'intero dispositivo è gestito dall'organizzazione possono scaricare le app solo dall'elenco approvato.

Puoi personalizzare la console EMM in modo da includere una casella di ricerca per consentire agli amministratori di cercare le app solo nell'elenco delle app approvate. La funzione di ricerca accetta gli stessi parametri di una funzione di ricerca standard della versione gestita di Google Play, ma cerca soltanto le app presenti nell'elenco delle app approvate.

Ad esempio, se l'amministratore vuole eseguire il push dell'installazione di un'app presente nell'elenco delle app approvate ai dispositivi della sua azienda, può utilizzare questa funzione di ricerca nella console EMM per trovare l'app.

Nella query puoi specificare un numero massimo di prodotti che il risultato dovrebbe contenere, ad esempio setMaxResults(10L), quanto basta per riempire lo schermo. Il valore predefinito è 100, valore massimo che è possibile restituire contemporaneamente. Quando il risultato contiene un token di impaginazione, puoi recuperare più risultati passando il token di impaginazione.

Questo esempio mostra come ottenere i primi 10 risultati di una ricerca di app di produttività. Leggi i Products.List.

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

Se il risultato di ricerca contiene un token di impaginazione, la ricerca ha prodotto più di setMaxResults risultati, o più di 10 in questo esempio. Per recuperare altri risultati, ripeti la ricerca e includi nella richiesta il token di impaginazione. Questo esempio restituisce i 10 risultati successivi.

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