Guía para desarrolladores

Las funciones empresariales de Android proporcionan a las organizaciones una plataforma de movilidad de Android segura, flexible y unificada, que combina dispositivos, aplicaciones y administración. De forma predeterminada, las apps para Android son compatibles con las funciones empresariales de Android. Sin embargo, existen funciones adicionales que puedes usar para lograr que tu app funcione mejor en dispositivos Android administrados:

Requisitos previos

  1. Creaste una app para Android.
  2. Ya puedes modificar tu app de modo que funcione mejor para las organizaciones.
  3. Versión mínima: Versión recomendada de Android 5.0 Lollipop (Android 6.0 Marshmallow o versiones posteriores)

Nota: Las funciones empresariales de Android están integradas en la mayoría de los dispositivos con Android 5.0. Sin embargo, Android 6.0 y las versiones posteriores ofrecen funciones adicionales, especialmente en lo que respecta a los dispositivos dedicados.

Perfiles de trabajo

Puedes administrar las aplicaciones y los datos de la empresa de un usuario a través de un perfil de trabajo. Un perfil de trabajo es un perfil corporativo administrado y asociado con la cuenta de usuario principal en un dispositivo Android. Un perfil de trabajo aísla de manera segura los datos y las apps de trabajo de las apps y los datos personales. Este perfil de trabajo está en un contenedor independiente del perfil personal, que controla el usuario. Estos perfiles independientes permiten que las organizaciones administren los datos de la empresa que les interesan, pero dejan todo lo demás en el dispositivo de un usuario bajo el control de este. Para obtener información detallada sobre las prácticas recomendadas, consulta la guía Perfiles de trabajo. Para obtener una descripción general de esas prácticas recomendadas, consulta a continuación.

Funciones clave de un perfil de trabajo

  • Perfil separado y seguro
  • Google Play administrado para la distribución de aplicaciones
  • Aplicaciones de trabajo con insignia separadas
  • Funciones de administración solo del perfil controladas por un administrador

Beneficios del perfil de trabajo en Android 5.0 y versiones posteriores

  • Encriptación completa del dispositivo
  • Un paquete de aplicación para Android (APK) para ambos perfiles cuando el dispositivo cuenta con un perfil personal y uno de trabajo
  • El controlador de política del dispositivo (DPC) está limitado al perfil de trabajo
  • Administración del dispositivo mediante la clase DevicePolicyManager

Consideraciones para perfiles de trabajo

Cómo evitar que los intents fallen entre perfiles

Es difícil saber qué intents pueden cruzarse entre perfiles y cuáles están bloqueados. La única forma de comprobarlo con seguridad es realizando pruebas. Antes de que tu app inicie una actividad, debes verificar que se haya resuelto la solicitud llamando a Intent.resolveActivity().

  • Si muestra null, no se resuelve la solicitud.
  • Si devuelve algo, significa que se resolvió el intent y que es seguro enviarlo.

Nota: Para obtener instrucciones de prueba detalladas, consulta Cómo prevenir intents fallidos.

Cómo compartir archivos entre perfiles

Algunos desarrolladores usan URI para marcar rutas de acceso a archivos en Android. Sin embargo, debido a que existen sistemas de archivos separados cuando un perfil de trabajo está presente, recomendamos lo siguiente:

Usa:
URI de contenido
  • Los URI de contenido contienen la autoridad, la ruta de acceso y el ID de un archivo específico. Puedes generarlo usando la subclase FileProvider. Más información
  • Comparte y otorga permisos para acceder al URI de contenido mediante un intent. Los permisos solo se pueden pasar más allá del límite del perfil mediante intents. Si otorgas a otra app derechos de acceso a tu archivo con Context.grantUriPermission(), solo se otorgará para esa app en el mismo perfil.
No uses:
URI de archivo
  • Contiene la ruta de acceso absoluta del archivo en el almacenamiento del dispositivo.
  • Un URI de ruta de archivo válido en un perfil no lo es en el otro.
  • Si adjuntas un URI de archivo a un intent, un controlador no podrá acceder al archivo en otro perfil.

Próximos pasos: Una vez que tu app admita perfiles administrados, pruébala en un perfil de trabajo. Consulta Prueba tu app.

Cómo implementar opciones de configuración administradas

Las configuraciones administradas son un conjunto de instrucciones que los administradores de TI pueden usar para administrar los dispositivos móviles de sus usuarios de una manera específica. Estas instrucciones son universales y funcionan en cualquier EMM, lo que permite a los administradores configurar las aplicaciones de forma remota en los teléfonos de sus usuarios.

Si desarrollas apps para empresas o gubernamentales, es posible que debas cumplir con el conjunto específico de requisitos de tu sector. Con configuraciones administradas, el administrador de TI puede especificar la configuración de forma remota y aplicar políticas a las apps para Android de sus usuarios, por ejemplo:

  • Configura si una app puede sincronizar datos a través de datos móviles, 3G o solo Wi-Fi
  • Cómo permitir o bloquear URLs en un navegador web
  • Configura el correo electrónico de una app
  • Habilitar o inhabilitar la impresión
  • Administrar Favoritos

Prácticas recomendadas para implementar opciones de configuración administradas

La guía Set up Managed Configurations es la fuente clave para obtener información sobre cómo compilar y, luego, implementar configuraciones administradas. Después de revisar esta documentación, consulta las siguientes recomendaciones para obtener orientación adicional.

Cuando inicies la app por primera vez

En cuanto inicias una aplicación, puedes ver si ya están establecidas las configuraciones administradas para la app en onStart() o onResume(). Además, puedes averiguar si tu aplicación está administrada o no. Por ejemplo, si getApplicationRestrictions() muestra lo siguiente:

  • Un conjunto de restricciones específicas de aplicaciones: Puedes establecer las opciones de configuración administradas de forma silenciosa (sin requerir entradas del usuario).
  • Un paquete vacío: Tu aplicación actúa como si no estuviera administrada (por ejemplo, la forma en que se comporta en un perfil personal).
  • Un paquete con un solo par clave-valor con KEY_RESTRICTIONS_PENDING configurado como verdadero: Se administra tu aplicación, pero el DPC no está configurado correctamente. Debes bloquear a este usuario de tu app y dirigirlo a su administrador de TI.

Detecta cambios en las opciones de configuración administradas

Los administradores de TI pueden cambiar los parámetros de configuración administrados y las políticas que quieren aplicar a sus usuarios en cualquier momento. Por este motivo, te recomendamos asegurarte de que tu app pueda aceptar las restricciones nuevas para la configuración administrada de la siguiente manera:

  • Recuperar restricciones durante el lanzamiento: Tu app debe llamar a getApplicationRestrictions() en onStart() y onResume(), y compararla con las restricciones anteriores para ver si se requieren cambios.
  • Escucha mientras estás en ejecución: Registra de forma dinámica ACTION_APPLICATION_RESTRICTIONS_CHANGED en tus actividades o servicios en ejecución después de verificar si hay restricciones nuevas. Este intent solo se envía a los objetos de escucha que se registran de forma dinámica y no a los declarados en el manifiesto de la app.
  • Cancela el registro cuando no esté en ejecución: En onPause(), debes cancelar el registro de la transmisión de ACTION_APPLICATION_RESTRICTIONS_CHANGED.

Dispositivos exclusivos

Los dispositivos exclusivos son dispositivos de kiosco que se usan para un solo propósito, como pantallas de señalización digital, kioscos de impresión de boletos o cajas registradoras de confirmación de compras.

Cuando un dispositivo Android se configura como un dispositivo dedicado, el usuario ve una aplicación bloqueada en la pantalla sin botones de inicio ni Apps recientes para escapar de la app. Los dispositivos exclusivos también se pueden configurar para que muestren un conjunto de aplicaciones, como un kiosco de biblioteca con una app para el catálogo de bibliotecas y un navegador web.

Para obtener instrucciones, consulta Dispositivo dedicado.

Cómo configurar el inicio de sesión único con las pestañas personalizadas de Chrome

Los usuarios empresariales suelen tener varias apps en sus dispositivos y prefieren acceder una vez para usar todas sus aplicaciones laborales. En general, los usuarios acceden a través de WebView. Sin embargo, existen algunos motivos por los que esto no es ideal:

  1. A menudo, los usuarios necesitan acceder varias veces con las mismas credenciales. A menudo, la solución WebView no es una verdadera experiencia de inicio de sesión único (SSO).
  2. Puede haber riesgos de seguridad, como aplicaciones maliciosas que inspeccionan cookies o inyectan JavaScript® para acceder a las credenciales de un usuario. Incluso los desarrolladores de confianza están en riesgo si dependen de SDK de terceros potencialmente maliciosos.

Una solución a ambos problemas es autenticar a los usuarios mediante las pestañas personalizadas del navegador, en lugar de WebView. Esto garantiza que la autenticación cumpla con las siguientes condiciones:

  • Se produce en un contexto seguro (el navegador del sistema) en el que la app host no puede inspeccionar contenido.
  • Tiene un estado de cookie compartida, lo que garantiza que el usuario tenga que acceder solo una vez.

Requisitos

Las pestañas personalizadas son compatibles hasta el nivel de API 15 (Android 4.0.3). Para usar las pestañas personalizadas, necesitas un navegador compatible, como Chrome. En Chrome 45 y versiones posteriores, se implementa esta función como pestañas personalizadas de Chrome.

¿Cómo implemento el SSO con pestañas personalizadas?

Google creó una biblioteca cliente de OAuth que usa pestañas personalizadas y la contribuyó al grupo de trabajo de OpenID Connect de OpenID Foundation. Si quieres configurar pestañas personalizadas para SSO con la biblioteca de AppAuth, consulta la documentación y el código de muestra en GitHub.

Prueba tu app

Después de desarrollar tu app, te recomendamos probarla, tanto en un perfil de trabajo como en un dispositivo completamente administrado. Observa las instrucciones a continuación.

Cómo usar el DPC de prueba a fin de probar tu app para Android

Proporcionamos la app de Prueba DPC para ayudar a los desarrolladores de Android a probar sus apps en un entorno empresarial. Con el DPC de prueba, puedes establecer políticas de EMM o valores de configuración administrados en un dispositivo, como si una organización administrara el dispositivo con un EMM. Para instalar Test DPC en un dispositivo, elige uno de los siguientes métodos:

  • Instala el DPC de prueba desde Google Play.
  • Compila desde el código fuente en GitHub.

Para obtener más información sobre cómo configurar el DPC de prueba, consulta las siguientes instrucciones y la Guía del usuario de DPC de prueba.

Cómo aprovisionar un perfil de trabajo

Para probar tu app en un perfil de trabajo, primero debes aprovisionar un perfil de trabajo en el dispositivo con la app de Test DPC, de la siguiente manera:

  1. Instala el DPC de prueba en el dispositivo.
  2. En el selector de Android, presiona el ícono de la app Set up Test DPC.
  3. Sigue las instrucciones en pantalla.
  4. Instala tu app en el dispositivo y pruébala para ver cómo se ejecuta en el perfil de trabajo.

Android crea un perfil de trabajo e instala una copia del DPC de prueba en el perfil de trabajo. Usarás esta instancia del DPC de prueba con insignia de trabajo para establecer políticas y configuraciones administradas en el perfil de trabajo. Si quieres obtener más información para configurar un perfil de trabajo para desarrollo, lee la guía para desarrolladores Perfiles de trabajo.

Aprovisiona un dispositivo completamente administrado

Las organizaciones usan dispositivos completamente administrados porque pueden aplicar una gama completa de políticas de administración en el dispositivo. Para aprovisionar un dispositivo completamente administrado, sigue estos pasos:

  1. Instala el DPC de prueba en el dispositivo.
  2. Confirma que no haya otros usuarios ni un perfil de trabajo en el dispositivo.
  3. Confirma que no haya cuentas en el dispositivo.
  4. Ejecuta el siguiente comando de Android Debug Bridge (adb) en tu terminal:
    adb shell dpm set-device-owner com.afwsamples.testdpc/.DeviceAdminReceiver
    .
  5. Una vez que hayas completado el aprovisionamiento del propietario del dispositivo, podrás probar tu app en ese dispositivo. Debes probar específicamente cómo funcionan las configuraciones administradas y los intents en ese dispositivo.

También puedes usar otros métodos de aprovisionamiento. Consulta la Guía del usuario de DPC de prueba. Para conocer la forma en que los administradores de TI suelen inscribir y aprovisionar dispositivos con Android, consulta Cómo aprovisionar dispositivos.

Pruebas de extremo a extremo

Una vez que termines de probar tu app en los entornos anteriores, probablemente te convenga probarla en un entorno de producción de extremo a extremo. Este proceso incluye los pasos que un cliente debe seguir para implementar tu app en su organización, incluidos los siguientes:

  • Distribución de apps mediante Play
  • Configuración administrada del servidor
  • Control de la política de perfil del servidor

Debes acceder a una consola de EMM para completar las pruebas de extremo a extremo. La forma más fácil de obtener una es solicitar una consola de prueba a tu EMM. Una vez que tengas acceso, completa estas tareas:

  1. Crea una versión de prueba de tu aplicación con un ApplicationId nuevo.
  2. Reclama un dominio de Google administrado y vincúlalo a tu EMM. Si ya tienes un dominio de prueba vinculado a un EMM, es posible que debas desvincularlo para probarlo con tu EMM que prefieras. Consulta a tu EMM para conocer los pasos específicos de desvinculación.
  3. Publica tu aplicación en el canal privado de su dominio de Google administrado.
  4. Usa la consola y la aplicación de EMM para hacer lo siguiente:
    1. Configura los dispositivos de trabajo.
    2. Distribuye tu aplicación.
    3. Establece la configuración administrada.
    4. Establece políticas de dispositivo.

Este proceso será diferente según tu EMM. Consulta la documentación de tu EMM para obtener más detalles. ¡Felicitaciones! Completaste estos pasos y verificaste que tu app funciona bien para usuarios empresariales.