Tarefas de gerenciamento comuns

Os EMMs podem implementar várias tarefas típicas de gerenciamento nas soluções empresariais para Android, como as tarefas mostradas neste guia. O exemplo de código usa a biblioteca de cliente da API Google Play EMM para Java®.

Pesquisar usuários e acessar detalhes deles

Muitas das APIs de EMM do Google Play exigem um userId (além de um enterpriseId) para fazer algumas tarefas associadas ao usuário, como instalar um app, receber direitos e fazer o licenciamento. Algumas chamadas exigem um objeto de usuário.

Se uma organização usa contas do Google Play gerenciado, você mantém um mapeamento entre os endereços de e-mail dos usuários e os IDs de usuário dessas contas. Com as Contas do Google, você usa UsersListResponse.

Procurar usuários

Este exemplo de código recebe IDs de usuário associados a Contas do Google. Ela não é válida para organizações que usam contas do Google Play gerenciado.

Neste exemplo, presumimos que você importou os modelos User e UsersListResponse para seu código. Para acessar uma conta de usuário específica, receba o userId transmitindo o enterpriseId e o e-mail para UsersListResponse.

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

Receber detalhes do usuário

Depois de ter o userId, é possível extrair outros detalhes. Consulte Users.Get:

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

Permitir que um usuário acesse apps

É possível usar as APIs de EMM do Google Play para controlar quais apps um usuário pode acessar. na Google Play Store gerenciada. O acesso a um aplicativo inclui a capacidade de pesquisar, visualizar, instalar e atualizar. Existem três tipos de acesso níveis disponíveis:

  • Somente apps permitidos:o usuário só tem acesso a apps específicos.
  • Todos os apps aprovados:o usuário tem acesso a todos os apps aprovados. da empresa.
  • Todos os apps:o usuário tem acesso a todos os apps disponíveis publicamente. na Google Play Store.

Conceder a um usuário acesso apenas a apps específicos

O exemplo abaixo mostra como conceder a um usuário acesso a um conjunto específico de apps na Google Play Store gerenciada. O processo inclui o etapas a seguir:

  • Colete uma lista de productIds (apps) aprovados para o usuário (productSet).
  • Para especificar que o usuário só pode acessar os apps da lista especificada, defina o valor da string productSetBehavior como "whitelist".
  • Aplique a lista de productIds e a configuração de comportamento ao conjunto de produtos disponíveis do usuário usando 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();
}

Permitir que um usuário acesse todos os apps aprovados

O exemplo abaixo mostra como conceder a um usuário acesso a qualquer app aprovado para a empresa no Google Play gerenciado. O processo inclui o etapas a seguir:

  • Especifique que o usuário pode acessar todos os apps aprovados para a empresa definindo o valor da string productSetBehavior como "allApproved".
  • Aplique essa configuração ao usuário com 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();
}

Observação:quando productSetBehavior é definido como "allApproved", não é necessário especificar productIds para o productSet.

Permitir que um usuário acesse todos os apps

O exemplo abaixo mostra como conceder a um usuário a capacidade de acessar o Play Store para acessar qualquer app disponível na Google Play Store pública. Os usuários com acesso a todos os apps ainda veem apenas o layout da loja dos próprios ao abrir o Google Play gerenciado, mas podem encontrar outros apps por meio de pesquisas.

Alguns usuários confiáveis, como administradores de TI, podem precisar desse nível maior de acesso para testar e avaliar apps antes de aprová-los para a empresa. A de conceder a um usuário acesso a todos os aplicativos inclui as seguintes etapas:

  • Especifique que o usuário pode acessar todos os apps da Google Play Store definindo o valor da string productSetBehavior como "includeAll".
  • Aplique essa configuração ao usuário com 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();
}

Observação:quando productSetBehavior é definido como "includeAll", não é necessário especificar productIds para o productSet.

Criar um layout de loja

Depois de conceder aos usuários acesso aos apps, agrupe os apps em clusters para exibir na vitrine do Google Play gerenciado.

Você pode criar um layout de loja personalizado exclusivo para cada um dos seus clientes usando as APIs Storelayoutpages e Storelayoutclusters. Um layout típico consiste em um conjunto de páginas, e cada uma delas pode conter clusters de apps. É possível colocar apps relacionados no mesmo cluster. Consulte Criar layouts personalizados da loja para mais detalhes e exemplos de código.

Receber as permissões de um app

Para adicionar um app a um layout de loja personalizado (ou instalar silenciosamente um app na dispositivo) e exibir o aplicativo para que o usuário possa selecioná-lo, o administrador deve aceitar permissões para esse aplicativo para toda a organização. Os administradores podem aceitar permissões de apps e marcar apps como aprovados para distribuição no Google Play Console (consulte a visão geral do Google Play gerenciado).

Como prática recomendada, sugerimos incorporar o iframe de permissões em seu console de EMM. Isso significa que o usuário não precisa navegar separadamente para o Google Play Console gerenciado. Use Products.getApprovalUrl para conseguir o URL do iframe.

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

Use Products.approve para aceitar essas permissões.

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

Acessar os dispositivos de um usuário

Para realizar ações específicas do dispositivo, você precisa identificar os dispositivos associados a de um usuário. Este exemplo retorna a lista de dispositivos para uma determinada userID usando DevicesListResponse.

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

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

Se o usuário concordou com os Termos de Serviço apresentados quando tentou acessar o Google Play gerenciado pela primeira vez, a resposta inclui dispositivos não gerenciados (dispositivos com o tipo de gerenciamento unmanagedProfile).

Acessar e definir o estado de um dispositivo

Essa tarefa de gerenciamento se aplica apenas a organizações que usam Contas do Google. Ela não se aplica a organizações que usam contas do Google Play gerenciado.

Quando a Conta do Google gerenciada do usuário é ativada em um dispositivo gerenciado, é possível acessar para serviços do Google é ativada (ou desativada) com base em:

Se a aplicação do EMM estiver desativada, o estado do dispositivo será ignorado e a conta será que concedem acesso aos serviços do Google sempre que os serviços são ativados em um dispositivo Android. Se a aplicação do EMM estiver ativada, mas o estado do dispositivo não estiver, os usuários não poderão fazer a instalação aplicativos do Google Play e as APIs de EMM do Google Play não podem ser instaladas silenciosamente apps para esse usuário no dispositivo.

Este exemplo mostra como obter o estado de um determinado dispositivo (especificado passando enterpriseId, userId e deviceId).

O getState() e setState() funcionam para dispositivos com managementType de Somente managedDevice ou managedProfile (no recurso Devices). Dispositivos com uma managementType de unmanagedProfile não pode ser controlada com essas APIs.

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

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

Ative ou desative os serviços do Google para a conta em um dispositivo definindo o AccountState à constante apropriada.

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

Instalar por push um app em um dispositivo

Os administradores podem instalar aplicativos silenciosamente. A interação do usuário não é necessária. Este exemplo usa Installs.Update para instalar silenciosamente um app (identificado por productId). a um dispositivo (identificado por 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 o aplicativo já existir no dispositivo e uma versão atualizada estiver disponível, o aplicativo será atualizado para a nova versão.

Pesquise e faça o download de apps na lista de apps aprovados

Os administradores criam e gerenciam uma lista de apps aprovados disponíveis para os usuários no Google Play gerenciado. Os usuários de dispositivos BYOD com perfis de trabalho e de dispositivos corporativos confiáveis em que o dispositivo é gerenciado pela organização só podem fazer o download de apps desta lista aprovada.

É possível personalizar o console de EMM para incluir uma caixa de pesquisa que permite aos administradores buscar apenas os apps na lista de apps aprovados. A função de pesquisa aceita os mesmos parâmetros que a função de pesquisa padrão do Google Play gerenciado, mas pesquisa apenas apps na lista de apps aprovados.

Por exemplo, se o administrador quiser instalar por push um app da lista de apps aprovados nos dispositivos da empresa, ele poderá usar essa função de pesquisa no console de EMM para encontrar o app.

Na consulta, é possível especificar um número máximo de produtos que o resultado precisa conter, como setMaxResults(10L), apenas o suficiente para preencher a tela. O valor padrão é 100, que também é o máximo que pode ser retornado de uma só vez. Quando o resultado contém um token de paginação, há mais resultados que você pode recuperar transmitindo esse token.

Este exemplo mostra como encontrar os 10 primeiros resultados de uma pesquisa por apps de produtividade. Consulte Products.List.

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

Se o resultado da pesquisa tiver um token de paginação, a pesquisa gerou mais de setMaxResults resultados ou mais de 10 neste exemplo. Para recuperar mais resultados, refaça a pesquisa e inclua o token de paginação na solicitação. Este exemplo mostra os próximos 10 resultados.

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