Admitir varios usuarios

Android admite varios usuarios en un solo dispositivo Android mediante la separación de usuarios y datos de aplicaciones. Por ejemplo, los padres pueden permitir que sus hijos usar la tablet familiar, una familia puede compartir un automóvil o un equipo de respuesta crítica podría compartir un dispositivo móvil para sus tareas de guardia.

Terminología

En Android, se usan los siguientes términos para describir sus cuentas y usuarios.

General

La administración de dispositivos Android usa las siguientes condiciones generales:

  • Usuario: Cada usuario está diseñado para que lo utilice un equipo físico diferente. persona. Cada usuario tiene datos de aplicación distintos y algunos parámetros de configuración únicos, como así como una interfaz de usuario que permite cambiar explícitamente entre usuarios. Un usuario puede ejecutar en segundo plano cuando otro usuario está activo; el sistema administra el apagado a los usuarios conservar recursos cuando corresponda. Se pueden crear usuarios secundarios ya sea directamente a través de la interfaz de usuario o desde Dispositivo Administración.
  • Cuenta: Las cuentas se encuentran dentro de un usuario, pero no están definidas. ni que un usuario lo defina ni esté vinculado a una cuenta determinada. Usuarios y los perfiles contienen sus propias cuentas únicas, pero no es necesario para que las cuentas funcionen. La lista de cuentas varía según el usuario. Para obtener más información, consulta la Cuenta class.
  • Perfil: Un perfil separa los datos de la app, pero comparte algunos. la configuración de todo el sistema (por ejemplo, Wi-Fi y Bluetooth). Un perfil es un subconjunto y se vinculan a la existencia de un usuario. Un usuario puede tener varios perfiles. Los perfiles se crean a través de un Dispositivo Administración. Un perfil siempre tiene una asociación inmutable a un usuario superior, definido por el usuario que creó el perfil. Los perfiles no existen más allá del ciclo de vida del usuario creador.
  • App: Los datos de una aplicación existen dentro de cada usuario asociado. Los datos de app se someten a una zona de pruebas de otras aplicaciones del mismo usuario. Aplicaciones dentro del mismo usuario pueden interactuar entre sí a través de IPC. Para obtener más información, consulta a Android para empresas.

Categorías de usuarios

La administración de dispositivos Android usa las siguientes categorías de usuarios.

  • Usuario del sistema: Es el primer usuario que se agrega a un dispositivo. El usuario del sistema no se puede quitar, excepto mediante el restablecimiento de la configuración de fábrica, y siempre está en ejecución, incluso cuando y otros usuarios se encuentran en primer plano. Este usuario también tiene privilegios especiales y que solo esa persona puede establecer.
  • Usuario del sistema sin interfaz gráfica: Es el primer usuario que se agrega a un dispositivo si este está configurado. para que se ejecute en el modo de usuario del sistema sin interfaz gráfica (configurando ro.fw.mu.headless_system_user=true) El usuario del sistema sin interfaz gráfica siempre se ejecuta en segundo plano, por lo que estos dispositivos requieren usuarios en primer plano para permitir su interacción.
  • Usuario secundario: Cualquier usuario que se agrega al dispositivo que no es el sistema usuario. Los usuarios secundarios se pueden quitar (ya sea por su cuenta o por parte de un administrador) usuario) y no puede afectar a otros usuarios del dispositivo. Estos usuarios pueden ejecutarse en segundo plano y que sigan teniendo conectividad de red.
  • Usuario invitado: Usuario secundario temporal. Los usuarios invitados tienen un para borrar rápidamente al usuario invitado cuando termine su utilidad. Puede puede ser solo un usuario invitado a la vez.
  • Usuario administrador: Es un usuario que tiene permiso para crear y quitar a otros usuarios. y controlar algunos parámetros de configuración multiusuario generales. De forma predeterminada, solo el usuario del sistema es un administrador.

Categorías de perfiles

Android usa las siguientes categorías de perfiles:

  • Perfil administrado: Creado por una aplicación para contener datos de trabajo y aplicaciones. Los administra exclusivamente el propietario del perfil (la aplicación que creó el perfil corporativo). Se muestran el selector, las notificaciones y las tareas recientes compartidas por el usuario superior y el perfil corporativo.
  • Perfil restringido: Usa cuentas en función del usuario parental, quien puede controlar qué aplicaciones están disponibles en el perfil restringido Disponible solo en tabletas y dispositivos de televisión.
  • Clonar perfil: Android admite la creación de un usuario de perfil de clonación independiente. para habilitar la ejecución de dos instancias de una sola app en el dispositivo. AOSP no proporciona de extremo a extremo para la función. Los OEMs deben agregar personalizaciones para entregar para los usuarios de Android.
  • Perfil privado: Es un espacio de zona de pruebas separado del resto del dispositivo. que pueden bloquearse independientemente del usuario principal. Un perfil privado solo puede existir usuario principal. Cuando se desbloquea el perfil privado, las apps se vuelven visibles en la configuración. ShareSheet, Photopicker y DocsUI, pero las apps están ocultas cuando el dispositivo está bloqueado. El perfil privado puede existir en el mismo dispositivo junto con el perfil de trabajo y clonar el perfil.

Tipos de usuario

Android 11 formuló la clasificación anterior de usuarios y perfiles en categorías tipos de usuario, que representen todos los tipos diferentes de usuarios y perfiles que permite el rol multiusuario de Android .

Los tipos de usuarios predefinidos para el AOSP se definen en frameworks/base/core/java/android/os/UserManager.java y actualmente incluyen:

  • android.os.usertype.full.SYSTEM
  • android.os.usertype.full.SECONDARY
  • android.os.usertype.full.GUEST
  • android.os.usertype.full.DEMO
  • android.os.usertype.full.RESTRICTED
  • android.os.usertype.profile.MANAGED
  • android.os.usertype.system.HEADLESS
  • android.os.usertype.profile.CLONE
  • android.os.usertype.profile.PRIVATE

Los OEM pueden configurar estos tipos de usuarios superponiendo los frameworks/base/core/res/res/xml/config_user_types.xml. Esto facilita el cambio de la configuración predeterminada para cada tipo de usuario incluidas sus restricciones predeterminadas, íconos, insignias y el número máximo permitido de usuarios.

Además de los tipos de usuario configurables del AOSP, los OEM pueden definir nuevos tipos de perfiles con el frameworks/base/core/res/res/xml/config_user_types.xml. Esto permite a los OEM introducir sus propios tipos de perfiles no administrados si lo desean. Sin embargo, es responsabilidad del OEM hacer las modificaciones necesarias en la plataforma para admitir el cambios, incluida la modificación de cualquier código que busca perfiles administrados para controlar ahora el perfil nuevo. si corresponde.

Habilita la función multiusuario

La función multiusuario está inhabilitada de forma predeterminada. Para habilitar la función, los fabricantes de dispositivos deben definir una superposición de recursos que reemplace los siguientes valores en frameworks/base/core/res/res/values/config.xml:

<!--  Maximum number of supported users -->
<integer name="config_multiuserMaximumUsers">1</integer>
<!--  Whether Multiuser UI should be shown -->
<bool name="config_enableMultiUserUI">false</bool>

Para aplicar esta superposición y habilitar a los usuarios invitados y secundarios en el dispositivo, usa la función DEVICE_PACKAGE_OVERLAYS del sistema de compilación de Android para reemplazar los valores para

  • config_multiuserMaximumUsers con un valor superior a 1
  • config_enableMultiUserUI con true

Los fabricantes de dispositivos pueden decidir la cantidad máxima de usuarios. Si el dispositivo fabricantes u otros tienen parámetros de configuración modificados, deben garantizar que los SMS y de telefonía funcionan, tal como se define en el Compatibilidad con Android Documento de definición (CDD).

Administrar varios usuarios

Administración de usuarios y perfiles (excepto los perfiles restringidos) lo realizan aplicaciones que invocan la API de forma programática en la Clase DevicePolicyManager para restringir el uso.

Las empresas pueden emplear usuarios y perfiles para administrar el ciclo de vida y el alcance de las aplicaciones y los datos en los dispositivos, con los tipos descritos anteriormente en conjunción con el DevicePolicyManager y UserManager para crear soluciones únicas y adaptadas a sus casos de uso.

Comportamiento del sistema multiusuario

Cuando se agregan usuarios a un dispositivo, algunas funciones se ven limitadas cuando otro usuario está en primer plano. Como los datos de la aplicación están separados por usuario, el el estado de estas apps varía según el usuario. Por ejemplo, correos electrónicos destinados a una cuenta de un usuario que no se enfoca actualmente no estará disponible hasta que ese usuario y esa cuenta están activos en el dispositivo.

Nota: Para habilitar o inhabilitar el teléfono y los SMS, sigue estos pasos: para un usuario secundario, ve a Configuración > Usuarios, selecciona usuario y desactiva la opción Permitir llamadas telefónicas y SMS.

Existen algunas restricciones cuando un usuario secundario está en segundo plano. Por ejemplo: el usuario secundario en segundo plano no puede mostrar la interfaz de usuario ni hacer Servicios Bluetooth activados Además, el proceso del sistema secundarios si el dispositivo necesita memoria adicional para las operaciones usuario en primer plano.

Cuando uses varios usuarios en un dispositivo Android, ten en cuenta lo siguiente del modelo de AA:

  • Las notificaciones aparecen para todas las cuentas de un solo usuario a la vez.
  • Las notificaciones de otros usuarios no aparecen hasta que estén activas.
  • Cada usuario obtiene un espacio de trabajo para instalar y colocar apps.
  • Ningún usuario tiene acceso a los datos de app de otro usuario.
  • Cualquier usuario puede afectar las apps instaladas para todos los usuarios.
  • Un usuario administrador puede quitar apps o incluso todo el espacio de trabajo establecido por usuarios secundarios.
  • De forma predeterminada, la información de una sesión de usuario invitado no se conserva cuando sales del modo de invitado. Si quieres que persista la información de una sesión de usuario invitado, debes crear un recurso un archivo de superposición que establezca config_guestUserAllowEphemeralStateChange como false Para obtener más información sobre la creación de archivos de superposición, consulta Cómo personalizar la compilación con superposiciones de recursos.

Multiusuario en Android Automotive

Android Automotive se basa en la implementación multiusuario de Android para proporcionar un dispositivo compartido. una experiencia fluida a los desarrolladores.

Tipos de usuarios de la industria automotriz

Además de los tipos de usuarios mencionados anteriormente, las compilaciones de Automotive se destacan en estos tipos de los usuarios:

  • Usuario de sistema sin interfaz gráfica. El usuario del sistema aloja todos los servicios del sistema. Para admitir varios usuarios en Automotive, el usuario del sistema también debe usar la versión sin interfaz gráfica. Solo hay un usuario sin interfaz gráfica. Un usuario del sistema sin interfaz gráfica:
    • Siempre debe ejecutarse en segundo plano.
    • El usuario no puede quitarlo ni acceder a él directamente, excepto en el caso de Dispositivo Aprovisionamiento. Por ejemplo, los usuarios no pueden cambiar a este tipo de usuario para realizar tareas como las siguientes: descargar apps o agregar cuentas.
    • Solo se puede borrar si restableces la configuración de fábrica.
  • Usuarios normales. Es igual a Usuarios secundarios, como se describió anteriormente, excepto ese usuario secundario usuarios:
    • No ejecutar en segundo plano (después de haber sido alejado).
    • Se pueden crear directamente a través de la interfaz de usuario.
    • Tener datos de app separados, pero compartir algunos parámetros de configuración de todo el sistema Por ejemplo, las conexiones Wi-Fi y Bluetooth

Advertencias

Las siguientes excepciones se aplican a los usuarios del sistema sin interfaz gráfica y a los usuarios normales (secundarios) en Industria automotriz:

  • El usuario del sistema sin interfaz gráfica no admite perfiles de trabajo.
  • De forma predeterminada, los usuarios normales (secundarios) tienen acceso completo a llamadas telefónicas y mensajes de texto.
  • De forma predeterminada, los usuarios normales (secundarios) no se ejecutan en segundo plano.

Habilita el usuario de sistema sin interfaz gráfica

A partir de Android 10, la función multiusuario se puede usar en casos de uso de la industria automotriz. Importantes distinciones incluyen:

  • El usuario del sistema no tiene interfaz gráfica y se ejecuta solo en segundo plano.
  • Los usuarios humanos no interactúan con el usuario del sistema.

Para habilitar el usuario del sistema sin interfaz gráfica, los fabricantes de dispositivos deben habilitar la función multiusuario como se describe. arriba.

Cuando el usuario sin interfaz gráfica está habilitado, ocurre lo siguiente:
  1. Para declarar que el dispositivo es Automotive, agrega la función android.hardware.type.automotive
  2. Establece ro.fw.headless_system_user en true.
  3. Establece el valor de config_multiuserMaximumUsers en 2. (o una versión posterior).

Para obtener más información, consulta Compatibilidad con multiusuario en Automotive.

Multiusuario de Android Automotive en varias pantallas

Una nueva función experimental de Android 14 permite a los usuarios secundarios con acceso completo (que no son el usuario actual en primer plano) para iniciar actividades y obtener tienen acceso a la IU en la pantalla a la que están asignados. Esta función permite múltiples usuarios simultáneos en el SO Android Automotive para admitir experiencias en el automóvil que brinden varias a los pasajeros con una experiencia de IU dedicada en una sola instancia de Android.

Para habilitar esta función para el desarrollo, los fabricantes de dispositivos deben definir una superposición de recursos. para reemplazar el siguiente valor en frameworks/base/core/res/res/values/config.xml:

<!-- Whether the device allows users to start in background visible on displays.
    Should be false for all devices in production. Can be enabled only for development use
    in automotive vehicles with passenger displays. -->

<bool name="config_multiuserVisibleBackgroundUsers">false></bool>

Puedes experimentar con una experiencia solo para pasajeros (sin conductor). Para ello, habilita las siguientes opciones: configuración adicional:

<!-- Whether the device allows users to start in background visible on the default display.
    Should be false for all devices in production. Can be enabled only for development use
    in passenger-only automotive build (i.e., when Android runs in a separate system in the
    back seat to manage the passenger displays).
    When set to true, config_multiuserVisibleBackgroundUsers must also be true. -->

<bool name="config_multiuserVisibleBackgroundUsersOnDefaultDisplay">false</bool>

En Android 14, puedes habilitar la experiencia en el vehículo para varios pasajeros como usuarios invitados. Para habilitar el uso de múltiples usuarios invitados, el dispositivo Los fabricantes deben definir una superposición de recursos que configure la cantidad máxima permitida de invitados. usuarios en frameworks/base/core/res/res/xml/config_user_types.xml, como el ejemplo a continuación:

<user-types>
   <full-type
       name="android.os.usertype.full.GUEST"
       max-allowed='4'>
       <default-restrictions no_factory_reset="true"
           no_remove_user="true"
           no_modify_accounts="true"
           no_install_apps="true"
           no_install_unknown_sources="true"
           no_uninstall_apps="true"/>
   </full-type>
</user-types>