| page.title=Actualizaciones de Android for Work |
| page.metaDescription=Nuevas API y funciones de Android for Work en Android N. |
| page.keywords="android for work", "android N", "enterprise", "QR code" |
| |
| @jd:body |
| |
| <div id="qv-wrapper"> |
| <div id="qv"> |
| <h2>En este documento</h2> |
| <ol> |
| <li><a href="#qr">Provisión de código QR |
| </a></li> |
| |
| <li><a href="#sec-challenge">Comprobación de seguridad para perfiles de trabajo |
| </a></li> |
| |
| <li><a href="#suspend">Inhabilitar acceso a aplicaciones |
| </a></li> |
| |
| <li><a href="#toggle-work">Activar o desactivar el modo de trabajo |
| </a></li> |
| |
| <li><a href="#always-on-vpn">VPN siempre visibles |
| </a></li> |
| |
| <li><a href="#contacts">Integración de contactos con el perfil de trabajo |
| </a></li> |
| |
| <li><a href="#remote-reboot">Reinicio remoto |
| </a></li> |
| |
| <li><a href="#disable-roaming">Inhabilitar roaming de datos |
| </a></li> |
| |
| <li><a href="#process-logging">Registros de procesos empresariales |
| </a></li> |
| |
| <li><a href="#bug-reports">Informes de errores remotos |
| </a></li> |
| |
| <li><a href="#remove-cert">Quitar un certificado de cliente |
| </a></li> |
| |
| <li><a href="#grant-cert-on-install">Otorgar acceso a certificado de cliente |
| en la instalación</a></li> |
| |
| <li><a href="#ui-policy">Transparencia de la política de IU del sistema |
| </a></li> |
| |
| <li><a href="#restrictions-mgmt">Mejoras en la administración de restricciones de aplicaciones |
| </a></li> |
| |
| <li><a href="#location-off">Interruptor de desactivación de los servicios de ubicación |
| </a></li> |
| |
| <li><a href="#custom-provisioning">Provisión personalizada |
| </a></li> |
| |
| <li><a href="#multi-wifi-ca">Múltiples certificados de CA de Wi-Fi |
| </a></li> |
| |
| <li><a href="#custom-lock">Mensaje personalizado en la pantalla bloqueada |
| </a></li> |
| |
| <li><a href="#work-connectionservice">ConnectionService del perfil de trabajo |
| </a></li> |
| |
| <li><a href="#lock-wp">Bloquear fondo de pantalla |
| </a></li> |
| |
| <li><a href="#lock-user-icon">Bloquear ícono de usuario |
| </a></li> |
| |
| <li><a href="#health-monitoring">Control del estado del dispositivo |
| </a></li> |
| |
| </ol> |
| |
| <h2>Consulta también</h2> |
| <ul> |
| <li><a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia sobre N Preview SDK |
| </a></li> |
| </ul> |
| </div> |
| </div> |
| |
| <p>En este documento, se describen las nuevas funciones de Android for Work que se proporcionan en |
| Android N.</p> |
| |
| <h2 id="qr">Provisión de código QR</h2> |
| |
| <p> |
| Android for Work ahora es compatible con la utilización de códigos QR para aprovisionar dispositivos |
| de responsabilidad corporativa. Gracias al asistente de configuración, ahora puedes escanear un código QR para aprovisionar |
| el dispositivo. |
| </p> |
| |
| <h2 id="sec-challenge">Comprobación de seguridad para perfiles de trabajo</h2> |
| |
| <p> |
| Los propietarios de perfiles pueden solicitar que los usuarios especifiquen una comprobación de seguridad para las aplicaciones |
| que se ejecutan en el perfil de trabajo. Dicha comprobación se muestra en el sistema cuando el |
| usuario intenta abrir cualquier aplicación de trabajo. Si el usuario completa con éxito la |
| comprobación de seguridad, el sistema desbloquea el perfil de trabajo y lo descifra |
| si es necesario. |
| </p> |
| |
| <p> |
| Si el propietario de un perfil envía una intent {@link |
| android.app.admin.DevicePolicyManager#ACTION_SET_NEW_PASSWORD}, el |
| sistema le pide al usuario que configure una comprobación de seguridad. El propietario del perfil también puede |
| enviar una intent <code>ACTION_SET_NEW_PARENT_PROFILE_PASSWORD</code> |
| para que el usuario establezca un bloqueo de dispositivo. |
| </p> |
| |
| <p> |
| Los propietarios de perfiles pueden elegir establecer las políticas de contraseña para la comprobación del perfil de trabajo de modo que sean |
| diferentes de aquellas para las contraseñas de otros dispositivos. Por ejemplo, la |
| longitud mínima para la respuesta de comprobación del dispositivo puede ser diferente de la |
| longitud necesaria para otras contraseñas. Los propietarios de perfiles establecen las políticas de |
| comprobación mediante los métodos {@link android.app.admin.DevicePolicyManager} |
| comunes, como por ejemplo, {@link |
| android.app.admin.DevicePolicyManager#setPasswordQuality |
| setPasswordQuality()} y {@link |
| android.app.admin.DevicePolicyManager#setPasswordMinimumLength |
| setPasswordMinimumLength()}. El propietario del perfil también puede establecer el bloqueo del dispositivo mediante |
| la utilización de la instancia de{@link android.app.admin.DevicePolicyManager} devuelta |
| por el nuevo método <code>DevicePolicyManager.getParentProfileInstance()</code> |
| . Además, los propietarios de perfiles pueden personalizar la pantalla de credenciales para |
| la comprobación de trabajo mediante la utilización de los nuevos métodos de la clase{@link android.app.admin.DevicePolicyManager} |
| <code>setOrganizationColor()</code> y |
| <code>setOrganizationName()</code>. |
| </p> |
| |
| <p> |
| Para obtener detalles sobre los nuevos métodos y constantes, consulta la página de referencia de |
| <code>DevicePolicyManager</code> en la <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia sobre N Preview SDK</a>. |
| </p> |
| |
| <h2 id="suspend">Inhabilitar acceso a aplicaciones</h2> |
| |
| <p> |
| Los propietarios de perfiles y dispositivos pueden suspender temporariamente el acceso a los paquetes |
| mediante una llamada al nuevo método <code>DevicePolicyManager.setPackagesSuspended()</code> |
| . Los propietarios pueden utilizar el mismo método para volver a habilitar esos paquetes. |
| </p> |
| |
| <p> |
| Mientras un paquete está suspendido, este no puede comenzar actividades, se suprimen las notificaciones al |
| paquete y se oculta la entrada de la aplicación en la <a href="{@docRoot}guide/components/recents.html">pantalla de información general</a>. |
| Los paquetes suspendidos no aparecen en la <a href="{@docRoot}guide/components/recents.html">pantalla de información general</a> y |
| no pueden mostrar diálogos (incluidos avisos y snackbars). Además, no pueden reproducir |
| audio ni hacer vibrar el dispositivo. |
| </p> |
| |
| <p> |
| Los lanzadores deben aplicar una IU distintiva para las aplicaciones suspendidas a fin de mostrar que las |
| aplicaciones no están actualmente disponibles; por ejemplo, el ícono de la aplicación puede aparecer en color |
| gris. Los lanzadores pueden averiguar si una aplicación está suspendida llamando al nuevo método |
| <code>DevicePolicyManager.getPackageSuspended()</code>. |
| </p> |
| |
| <h2 id="toggle-work">Activar o desactivar el modo de trabajo</h2> |
| |
| <p> |
| En dispositivos de perfil doble, los usuarios pueden activar o desactivar el modo de trabajo. Mientras este último está |
| desactivado, el perfil administrado se encuentra inactivo temporariamente. Se inhabilitan |
| todas las aplicaciones del perfil de trabajo, la sincronización en segundo plano y las notificaciones, incluida |
| la aplicación del propietario del perfil. Mientras el perfil de trabajo está deshabilitado, en el sistema |
| se muestra un ícono de estado persistente para recordarles a los usuarios que no pueden iniciar aplicaciones |
| de trabajo. El launcher del sistema indica que no se puede acceder a aplicaciones ni widgets |
| de trabajo. |
| </p> |
| |
| <h2 id="always-on-vpn">VPN siempre visibles</h2> |
| |
| <p> |
| Los propietarios de dispositivos y perfiles pueden solicitar que las aplicaciones de trabajo siempre se conecten a la red |
| a través de una VPN especificada. Si los propietarios establecen este requisito, el |
| dispositivo inicia automáticamente esa VPN en el inicio. |
| </p> |
| |
| <p> |
| Los propietarios pueden requerir el uso de una VPN llamando al nuevo método |
| <code>DevicePolicyManager.setAlwaysOnVpnPackage()</code>. Para averiguar |
| si el propietario ha establecido un requisito de VPN, llama al nuevo método |
| <code>DevicePolicyManager.GetAlwaysOnVpnPackage()</code>. |
| </p> |
| |
| <p> |
| Debido a que los servicios de VPN pueden enlazarse directamente a través del sistema sin interacción con aplicaciones, |
| los clientes de VPN deben administrar nuevos puntos de entrada para VPN siempre visibles. Como antes, puedes |
| encontrar servicios activos mediante la utilización de un filtro de intent que coincida con la acción |
| {@link android.net.VpnService android.net.VpnService}. |
| </p> |
| |
| <p> |
| Para configurar manualmente un cliente de VPN que esté siempre visible y que implemente {@link |
| android.net.VpnService}, los usuarios deben ir a <strong>Settings > More > |
| pantalla VPN</strong>. |
| </p> |
| |
| <h2 id="contacts">Integración de contactos con el perfil de trabajo</h2> |
| |
| <p> |
| Los propietarios de perfiles pueden permitir la búsqueda local y la búsqueda en directorio de los contactos de trabajo |
| a partir del usuario principal. Por ejemplo, un usuario puede acceder a contactos personales y laborales del directorio |
| desde el teléfono personal o la aplicación de contactos (si |
| así lo permite el administrador del perfil). |
| </p> |
| |
| <p> |
| Los desarrolladores que aprovechan el proveedor de contactos pueden utilizar la API de contactos empresariales |
| para acceder a las entradas del directorio del perfil de trabajo desde el usuario principal si así lo permiten |
| las siguientes políticas: |
| </p> |
| |
| <ul> |
| <li><code>ContactsContract.Contacts.ENTERPRISE_CONTENT_FILTER_URI</code> |
| </li> |
| |
| <li><code>ContactsContract.Phone.ENTERPRISE_CONTENT_FILTER_URI</code> |
| </li> |
| |
| <li><code>ContactsContract.Email.ENTERPRISE_CONTENT_FILTER_URI</code> |
| </li> |
| |
| <li><code>ContactsContract.Callable.ENTERPRISE_CONTENT_FILTER_URI</code> |
| </li> |
| |
| <li><code>ContactsContract.Directory.ENTERPRISE_CONTENT_URI</code> |
| </li> |
| |
| <li><code>ContactsContract.Directory.isEntepriseDirectoryId()</code> |
| </li> |
| </ul> |
| |
| <p> |
| Los propietarios de perfiles pueden controlar la visibilidad de los contactos laborales en el usuario |
| principal por medio de los nuevos métodos a continuación: |
| </p> |
| |
| <ul> |
| <li> |
| <code>DevicePolicyManager.setCrossProfileContactsSearchDisabled()</code> |
| </li> |
| |
| <li> |
| <code>DevicePolicyManager.getCrossProfileContactsSearchDisabled()</code> |
| </li> |
| </ul> |
| |
| <h2 id="remote-reboot">Reinicio remoto</h2> |
| |
| <p> |
| Los propietarios pueden reiniciar sus dispositivos de forma remota. En algunos casos, no se puede acceder al botón de encendido de los dispositivos implementados en |
| lugares públicos dentro de recintos. Si se debe |
| reiniciar un dispositivo, los administradores pueden hacerlo utilizando el nuevo método |
| <code>DevicePolicyManager.reboot()</code>. |
| </p> |
| |
| <h2 id="disable-roaming">Inhabilitar roaming de datos</h2> |
| |
| <p> |
| Los propietarios de dispositivos pueden inhabilitar el roaming de datos mediante la nueva restricción de usuario de {@link |
| android.os.UserManager} denominada <code>DISALLOW_DATA_ROAMING</code>. |
| </p> |
| |
| <h2 id="process-logging">Registros de procesos empresariales</h2> |
| |
| <p> |
| Los propietarios de dispositivos pueden identificar actividades sospechosas mediante un rastreo remoto de la actividad del |
| dispositivo, incluidos inicios de aplicaciones, actividad adb y desbloqueos de pantalla. Los registros de |
| procesos no requieren del consentimiento del usuario. Para recuperar registros, los propietarios de dispositivos habilitan |
| los registros de dispositivos mediante <code>DevicePolicyManager.setSecurityLoggingEnabled()</code>. |
| </p> |
| |
| <p> |
| Entre los cambios en la API, se incluyen los siguientes: |
| </p> |
| |
| <ul> |
| |
| <li> |
| La nueva clase <code>android.app.admin.SecurityLog</code> y sus |
| métodos |
| </li> |
| |
| <li> |
| <code>void DevicePolicyManager.setSecurityLoggingEnabled()</code> |
| </li> |
| |
| <li> |
| <code>boolean DevicePolicyManager.isSecurityLoggingEnabled()</code> |
| </li> |
| |
| <li> |
| <code>List<SecurityEvent> |
| DevicePolicyManager.retrieveSecurityLogs()</code> |
| </li> |
| |
| <li> |
| <code>List<SecurityEvent> |
| DevicePolicyManager.retrievePreRebootSecurityLogs()</code> |
| </li> |
| |
| <li> |
| <code>void DeviceAdminReceiver.onSecurityLogsAvailable()</code> |
| </li> |
| </ul> |
| |
| <h2 id="bug-reports">Informes de errores remotos</h2> |
| |
| <p> |
| Los propietarios de dispositivos pueden activar y recuperar de forma remota un informe de errores que contenga un |
| archivo de descarga sobre el estado del dispositivo, lo que permite llevar a cabo una investigación forense de un |
| incidente conocido o un dispositivo afectado. Debido a la naturaleza detallada del informe de errores, |
| se requiere el consentimiento del usuario. |
| </p> |
| |
| <p> |
| Android N incluye los siguientes agregados de API para ofrecer compatibilidad con esta función. Para obtener |
| detalles, consulte la <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia sobre N Preview SDK |
| </a>. |
| </p> |
| |
| <ul> |
| <li> |
| <code>DevicePolicyManager.requestBugreport()</code> |
| </li> |
| |
| <li> |
| <code>DeviceAdminReceiver.onBugreportFailed()</code> |
| </li> |
| |
| <li> |
| <code>DeviceAdminReceiver.onBugreportShared()</code> |
| </li> |
| |
| <li> |
| <code>DeviceAdminReceiver.onBugreportSharingDeclined()</code> |
| </li> |
| |
| <li> |
| <code>DeviceAdminReceiver.BUGREPORT_FAILURE_FAILED_COMPLETING</code> |
| </li> |
| |
| <li> |
| <code>DeviceAdminReceiver.BUGREPORT_FAILURE_FILE_NO_LONGER_AVAILABLE</code> |
| </li> |
| </ul> |
| |
| <h2 id="remove-cert">Quitar un certificado de cliente</h2> |
| |
| <p> |
| Los propietarios de perfiles y dispositivos ahora pueden quitar certificados de cliente que se |
| instalaron a través de {@link android.app.admin.DevicePolicyManager#installKeyPair |
| installKeyPair()} llamando al nuevo método |
| <code>DevicePolicyManager.removeKeyPair()</code>. |
| </p> |
| |
| <h2 id="grant-cert-on-install">Otorgar acceso a certificado de cliente |
| en la instalación</h2> |
| |
| <p> |
| Si un propietario de perfil o dispositivo otorga a una aplicación de terceros la capacidad de |
| administrar certificados, dicha aplicación puede acceder por sí sola a los certificados que |
| instala sin intervención alguna por parte del propietario. |
| </p> |
| |
| <p> |
| La API existente para administrar certificados se extiende para incluir lo siguiente: |
| </p> |
| |
| <ul> |
| <li><code>DevicePolicyManager.installKeyPair()</code> |
| </li> |
| </ul> |
| |
| <h2 id="ui-policy">Transparencia de la política de IU del sistema</h2> |
| |
| <p> |
| Las políticas que afectan la experiencia del usuario o restringen las configuraciones del usuario se divulgan |
| en su totalidad al usuario, y los propietarios de perfiles y dispositivos pueden atribuir la |
| política al departamento de TI de la empresa. Además de un mensaje “Action |
| not allowed” consistente en Settings, los administradores de TI pueden configurar un |
| mensaje de soporte específico para la organización en la configuración del dispositivo con los nuevos |
| métodos{@link android.app.admin.DevicePolicyManager} a continuación: |
| </p> |
| |
| <ul> |
| <li> |
| <code>DevicePolicyManager.setShortSupportMessage()</code> |
| </li> |
| |
| <li> |
| <code>DevicePolicyManager.setLongSupportMessage()</code> |
| </li> |
| </ul> |
| |
| <h2 id="restrictions-mgmt">Mejoras en la administración de las restricciones de aplicaciones</h2> |
| |
| <p> |
| El propietario del dispositivo o perfil puede habilitar otra aplicación para que administre las restricciones de |
| aplicaciones mediante el nuevo método |
| <code>DevicePolicyManager.setApplicationRestrictionsManagingPackage()</code> |
| . La aplicación nominada puede controlar si se otorgó este permiso |
| llamando a |
| <code>DevicePolicyManager.isCallerApplicationRestrictionsManagingPackage()</code>. |
| </p> |
| |
| <p> |
| Una aplicación nominada para administrar restricciones de aplicaciones puede llamar a {@link |
| android.app.admin.DevicePolicyManager#setApplicationRestrictions |
| setApplicationRestrictions()} y {@link |
| android.app.admin.DevicePolicyManager#getApplicationRestrictions |
| getApplicationRestrictions()} para cualquier paquete dentro de ese usuario o perfil. |
| </p> |
| |
| <h2 id="location-off">Interruptor de desactivación de los servicios de ubicación</h2> |
| |
| <p> |
| Los usuarios pueden inhabilitar los permisos de ubicación para las aplicaciones de trabajo mientras continúan |
| accediendo a información sobre ubicación en sus aplicaciones personales. Mediante un interruptor independiente de acceso |
| a información de ubicación en Location Settings, los usuarios pueden denegar las actualizaciones de ubicación o |
| las consultas de última ubicación para las aplicaciones que se ejecutan en el perfil de trabajo. |
| </p> |
| |
| <p> |
| Gracias al interruptor de desactivación de servicios de ubicación de nivel superior, se inhabilita el acceso a este tipo de información para |
| el perfil principal y el perfil administrado. |
| </p> |
| |
| <h2 id="custom-provisioning">Aprovisionamiento personalizado</h2> |
| |
| <p> |
| En una aplicación se pueden personalizar los flujos de provisión |
| del propietario del perfil y del propietario del dispositivo con logos y colores corporativos. |
| </p> |
| |
| <dl> |
| <dt> |
| <code>DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR</code> |
| </dt> |
| |
| <dd> |
| Permite personalizar el color del flujo. |
| </dd> |
| |
| <dt> |
| <code>DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI</code> |
| </dt> |
| |
| <dd> |
| Permite personalizar el flujo con un logo corporativo. |
| </dd> |
| </dl> |
| |
| <h2 id="multi-wifi-ca">Múltiples certificados de CA de Wi-Fi</h2> |
| |
| <p> |
| Los propietarios de perfiles y dispositivos pueden configurar múltiples certificados de CA para una configuración |
| de Wi-Fi determinada. Cuando las redes de Wi-Fi corporativas tienen CA independientes para |
| diferentes puntos de acceso con el mismo SSID, los administradores de TI pueden incluir todas las |
| CA relevantes en la configuración Wi-Fi utilizando el nuevo método |
| <code>setCaCertificates()</code>. |
| </p> |
| |
| <p> |
| Las API que se agregaron son las siguientes: |
| </p> |
| |
| <ul> |
| <li> |
| <code>WifiEnterpriseConfig.setCaCertificates()</code> |
| </li> |
| |
| <li> |
| <code>WifiEnterpriseConfig.getCaCertificates()</code> |
| </li> |
| </ul> |
| |
| <h2 id="custom-lock">Mensaje personalizado en la pantalla bloqueada</h2> |
| |
| <p> |
| Los propietarios de dispositivos pueden proporcionar información de propietario para que aparezca en la pantalla bloqueada. |
| Esta información prevalece sobre el mensaje de la pantalla bloqueada del usuario (si se configuró |
| uno). Los nuevos métodos {@link android.app.admin.DevicePolicyManager} son los siguientes: |
| </p> |
| |
| <ul> |
| <li> |
| <code>setDeviceOwnerLockScreenInfo()</code> |
| </li> |
| |
| <li> |
| <code>getDeviceOwnerLockScreenInfo()</code> |
| </li> |
| </ul> |
| |
| <h2 id="work-connectionservice">ConnectionService del perfil de trabajo</h2> |
| |
| <p> |
| Los propietarios de perfiles pueden especificar una aplicación de teléfono de trabajo que utilice un |
| {@link android.telecom.ConnectionService} específico del trabajo para el backend |
| de llamadas (cuentas de llamadas). El teléfono de trabajo lleva únicamente un registro de llamadas de trabajo |
| y depende solo de contactos laborales. Los usuarios tienen una experiencia de IU |
| de llamada entrante consistente independientemente de la aplicación de marcación. Las llamadas laborales que ingresan en las |
| cuentas de llamadas de trabajo se distinguen de las llamadas personales que ingresan en |
| las cuentas de llamadas personales. |
| </p> |
| |
| <p> |
| El teléfono debe controlar el nuevo marcador |
| <code>android.telecom.Call.PROPERTY_WORK_CALL</code> para determinar si una llamada es |
| de tipo laboral. Si se trata de una llamada laboral, el teléfono debe indicarlo |
| , por ejemplo, mediante el agregado de una insignia de trabajo. |
| </p> |
| |
| <h2 id="lock-wp">Bloquear fondo de pantalla</h2> |
| |
| <p> |
| Mediante una nueva restricción de usuario (<code>DISALLOW_SET_WALLPAPER</code>), se evita que el |
| usuario modifique el fondo de pantalla. Los propietarios de dispositivos o perfiles aún pueden |
| modificar el fondo de pantalla. Sin embargo, solo pueden hacerlo para el |
| usuario o perfil que controlan. Por ejemplo, el propietario de un perfil no puede modificar el |
| fondo de pantalla del usuario primario, |
| pero sí pueden hacerlo el propietario de un dispositivo o el propietario de un perfil en el perfil principal. El propietario de un dispositivo o perfil que desea modificar el |
| fondo de pantalla debe controlar si el usuario o perfil que administra posee un |
| fondo de pantalla ({@link android.app.WallpaperManager#isWallpaperSupported |
| isWallpaperSupported()}) y si puede modificarlo (con el |
| nuevo método <code>WallpaperManager.isWallpaperSettingAllowed()</code>). |
| </p> |
| |
| <h2 id="lock-user-icon">Bloquear ícono de usuario</h2> |
| |
| <p> |
| Mediante una nueva restricción de usuario (<code>DISALLOW_SET_USER_ICON</code>), se evita que el |
| usuario modifique el ícono de usuario. El propietario del dispositivo o del perfil del usuario |
| aún puede modificar el ícono. Sin embargo, un propietario de perfil solo puede modificar el ícono |
| de usuario del perfil que controla. |
| </p> |
| |
| <h2 id="health-monitoring">Control del estado del dispositivo</h2> |
| |
| <p> |
| El propietario de un perfil o dispositivo puede usar la nueva interfaz |
| <code>HardwarePropertiesManager</code> para recuperar información |
| sobre el estado del dispositivo, como por ejemplo, las temperaturas de CPU o GPU y el uso de la CPU. La nueva interfaz |
| de control es especialmente útil para controlar dispositivos sin supervisión |
| que se ejecutan en una ubicación remota. |
| </p> |