blob: 32e57c83a3d5ba181f3c89cf78d35eaf5685127a [file] [log] [blame]
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 &gt; More &gt;
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&lt;SecurityEvent&gt;
DevicePolicyManager.retrieveSecurityLogs()</code>
</li>
<li>
<code>List&lt;SecurityEvent&gt;
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>