Tareas de administración típicas

Los EMM pueden implementar una variedad de tareas de administración típicas en sus soluciones empresariales para Android, como las tareas que se muestran en esta guía. El código de muestra usa la biblioteca cliente de la API de EMM de Google Play para Java®.

Cómo buscar usuarios y obtener detalles de usuarios

Muchas de las APIs de EMM de Google Play requieren un userId (además de un enterpriseId) para realizar algunas tareas asociadas con el usuario, como instalar una app, obtener derechos y licencias. Algunas llamadas requieren un objeto de usuario.

Si una organización usa cuentas de Google Play administrado, debes mantener una asignación entre las direcciones de correo electrónico de los usuarios y los IDs de usuario de esas cuentas. Con las Cuentas de Google, usas UsersListResponse.

Cómo buscar usuarios

Esta muestra de código obtiene los IDs de usuario asociados con Cuentas de Google. No se aplica a las organizaciones que usan cuentas de Google Play administradas.

En este ejemplo, se supone que importaste los modelos User y UsersListResponse a tu código. Para obtener una cuenta de usuario específica, pasa enterpriseId y el correo electrónico a UsersListResponse para obtener su userId.

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

Obtén detalles del usuario

Una vez que tengas el userId, podrás recuperar otros detalles. Consulta Users.Get

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

Otorga a un usuario acceso a las apps

Puedes usar las APIs de EMM de Google Play para controlar a qué apps puede acceder un usuario desde la tienda de Google Play administrado. El acceso a una app incluye la capacidad de buscarlo, verlo, instalarlo y actualizarlo. Existen tres tipos de políticas de acceso niveles disponibles:

  • Solo apps permitidas: El usuario solo tiene acceso a apps específicas.
  • Todas las apps aprobadas: El usuario tiene acceso a todas las apps que se aprobaron para la empresa.
  • Todas las apps: El usuario tiene acceso a todas las apps que están disponibles de manera pública. en Google Play Store.

Cómo otorgar a un usuario acceso solo a apps específicas

En el siguiente ejemplo, se muestra cómo otorgar a un usuario acceso a un conjunto específico de apps desde la tienda de Google Play administrado. El proceso incluye las los siguientes pasos:

  • Recopila una lista de productIds (apps) que están aprobadas para el usuario (productSet).
  • Configura el valor de la cadena productSetBehavior como "whitelist" para especificar que el usuario solo pueda acceder a las apps de la lista determinada.
  • Aplica la lista de productIds y la configuración de comportamiento al conjunto de productos disponible del usuario mediante 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();
}

Otorga a un usuario acceso a todas las apps aprobadas

En el siguiente ejemplo, se muestra cómo otorgar a un usuario acceso a cualquier app aprobada para empresas desde Google Play Store administrado. El proceso incluye las los siguientes pasos:

  • Especifica que el usuario puede acceder a todas las apps aprobadas para la empresa estableciendo el valor de la cadena productSetBehavior en "allApproved".
  • Aplica esta configuración al usuario con 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: Cuando productSetBehavior se establece en "allApproved", no necesitas especificar ningún productIds para productSet.

Otorga a un usuario acceso a todas las apps

En el siguiente ejemplo, se muestra cómo otorgar a un usuario la capacidad de usar la consola de Google Play Store para acceder a cualquier app que esté disponible en Google Play Store público. Los usuarios con acceso a todas las apps solo ven el diseño de la tienda de su empresariales cuando abren Google Play administrado, pero pueden encontrar apps adicionales a través de la búsqueda.

Es posible que ciertos usuarios de confianza, como los administradores de TI, requieran este mayor nivel de para probar y evaluar apps antes de aprobarlas para la empresa. El El proceso de otorgar a un usuario acceso a todas las apps incluye los siguientes pasos:

  • Para especificar que el usuario puede acceder a todas las apps de Google Play Store, establece el valor de la cadena productSetBehavior en "includeAll".
  • Aplica esta configuración al usuario con 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: Cuando productSetBehavior se establece en "includeAll", no necesitas especificar ningún productIds para productSet.

Crea un diseño de tienda

Después de darles a los usuarios acceso a las apps, agrúpalas en clústeres para que se muestren en la vidriera de Google Play Store administrado.

Puedes crear un diseño de tienda personalizado y único para cada uno de tus clientes con las APIs de Storelayoutpages y Storelayoutclusters. Un diseño típico consiste en un conjunto de páginas, y cada una puede contener clústeres de aplicaciones. Puedes colocar aplicaciones relacionadas en el mismo clúster. Consulta Crea diseños de tienda personalizados para obtener detalles y código de muestra.

Cómo obtener los permisos de una app

Para agregar una app a un diseño de tienda personalizado (o instalar de manera silenciosa una app en la dispositivo) y mostrar la app para que el usuario pueda seleccionarla, el administrador debe aceptar permisos en esa app para toda la organización. Los Administradores pueden aceptar permisos de las aplicaciones y marcar las aplicaciones como aprobadas para su distribución en la cuenta Google Play Console (consulta la descripción general de Google Play administrado).

Como práctica recomendada, te sugerimos incorporar el iframe de permisos en tu Consola de EMM Esto significa que el usuario no tiene que navegar por separado al con Google Play Console administrado. Usa Products.getApprovalUrl para obtener la URL del iframe.

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

Usa Products.approve para aceptar esos permisos.

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

Obtén los dispositivos de un usuario

Para realizar acciones específicas de los dispositivos, debes identificar los dispositivos asociados con de un usuario. En este ejemplo, se muestra la lista de dispositivos para un objeto userID determinado mediante DevicesListResponse.

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

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

Si el usuario aceptó las Condiciones del Servicio presentadas cuando intentó acceder Google Play administrado por primera vez, la respuesta incluye dispositivos no administrados (dispositivos con el tipo de administración unmanagedProfile).

Cómo obtener y establecer el estado de un dispositivo

Esta tarea de administración se aplica solo a las organizaciones que usan Cuentas de Google. Integra no se aplica a las organizaciones que usan cuentas de Google Play administradas.

Cuando la Cuenta de Google administrada del usuario se activa en un dispositivo administrado, para los servicios de Google se habilita (o inhabilita) en función de lo siguiente:

Si la aplicación forzosa de EMM está inhabilitada, se ignora el estado del dispositivo y la cuenta se Se otorga acceso a los servicios de Google cada vez que se activa en un dispositivo Android. Si la aplicación forzosa de EMM está habilitada, pero el estado del dispositivo no lo está, los usuarios no pueden instalar aplicaciones de Google Play y las APIs de EMM de Google Play no se pueden instalar silenciosamente apps para ese usuario en el dispositivo.

Este ejemplo muestra cómo obtener el estado de un dispositivo determinado (especificado pasando enterpriseId, userId y deviceId).

El getState() y las operaciones setState() funcionan para dispositivos con una managementType de managedDevice o managedProfile (en el recurso Devices). Dispositivos con No se puede controlar un managementType de unmanagedProfile con estas APIs.

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

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

Habilita o inhabilita los servicios de Google para la cuenta en un dispositivo estableciendo la AccountState a la constante correspondiente.

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

Instala de manera push una app en un dispositivo

Los administradores pueden instalar aplicaciones de manera silenciosa. No se requiere la interacción del usuario. En este ejemplo, se usa Installs.Update para instalar de manera silenciosa una app (identificada por productId) a un 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();
}

Si la app ya existe en el dispositivo y hay una versión actualizada disponible, se actualizará a la nueva versión.

Buscar y obtener apps de la lista de aplicaciones aprobadas

Los administradores crean y administran una lista de las apps aprobadas que están disponibles para sus usuarios en Google Play administrado. Los usuarios de dispositivos BYOD con perfiles de trabajo y los usuarios de dispositivos confiables para la empresa en los que la organización administra todo el dispositivo solo pueden descargar apps de esta lista aprobada.

Puedes personalizar tu consola de EMM para que incluya un cuadro de búsqueda, de modo que los administradores solo puedan buscar las apps que estén en la lista de apps aprobadas. La función de búsqueda acepta los mismos parámetros que una función de búsqueda estándar de Google Play administrada, pero solo busca las apps incluidas en la lista de apps aprobadas.

Por ejemplo, si el administrador quiere instalar una app de la lista de apps aprobadas en los dispositivos de su empresa, puede usar esta función de búsqueda en la consola de EMM para encontrar la app.

En tu consulta, puedes especificar una cantidad máxima de productos que debe contener tu resultado, como setMaxResults(10L), la cantidad justa para llenar la pantalla. El valor predeterminado es 100, que también es el máximo que se puede mostrar a la vez. Cuando el resultado contiene un token de paginación, hay más resultados que puedes recuperar pasando el token de paginación.

En este ejemplo, se muestra cómo obtener los primeros 10 resultados de una búsqueda de apps de productividad. Consulta los Products.List.

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

Si el resultado de la búsqueda contiene un token de paginación, la búsqueda produjo más de setMaxResults resultados, o más de 10 en este ejemplo. Para obtener más resultados, vuelve a realizar la búsqueda e incluye el token de paginación en la solicitud. En este ejemplo, se obtienen los siguientes 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;
}