Roles de Android

Un rol es un nombre único dentro del sistema asociado con ciertos permisos y privilegios. Las apps pueden solicitar que se les asignen ciertos roles a través de la API de Android, específicamente, invocando métodos en la clase RoleManager.

Consulta la siguiente lista para ver los roles disponibles y sus requisitos correspondientes:

Función Requisitos
ASSISTANT Al menos uno de los siguientes elementos:
  • La app tiene una actividad que realiza acciones de asistencia, según la información sobre el contexto del usuario cuando solicitó la asistencia (por ejemplo, el nombre del paquete de la app en primer plano actual y su información contextual).
  • La app tiene un servicio de interacción por voz siempre activo y restringido por el permiso android.permission.BIND_VOICE_INTERACTION, que puede realizar reconocimiento de voz y organizar sesiones de interacción de voz activas. Además, la app tiene una marca explícita que indica que el servicio es capaz de controlar la acción de asistencia.
BROWSER Todos los siguientes:
  • La app tiene una actividad que las apps pueden invocar mediante solicitudes de intent implícitas, que muestra una página web que corresponde a una dirección http://.
  • La app debe controlar la navegación entre vínculos. Es decir, si el usuario ve una página web y hace clic en una dirección http:// del texto, la app debe poder mostrar el contenido correspondiente al vínculo seleccionado sin intervención adicional del usuario.
  • La app debe poder proporcionar la información de ubicación geográfica actual del dispositivo a las páginas web cuando se solicite y el usuario apruebe la solicitud.
DIALER Todos los siguientes:
  • La app tiene una actividad que las apps pueden invocar a través de solicitudes de intent implícito, que proporciona la interfaz de usuario de la llamada mientras el dispositivo está en una llamada.
  • La app puede controlar los intents de llamadas entrantes, mostrarle al usuario la información relacionada con la llamada (por ejemplo, el número de teléfono del emisor) y permitirle que la conteste o rechace.
  • La app le proporciona al usuario un medio para iniciar llamadas y ver un historial de llamadas en su dispositivo.
SMS Todos los siguientes:
  • La app cumple con todos los requisitos para las apps de SMS.
  • La app tiene una actividad que las apps pueden invocar a través de solicitudes de intent implícitas, que pueden enviar un mensaje a un número de teléfono.
  • La app tiene un servicio restringido por el permiso android.permission.SEND_RESPOND_VIA_MESSAGE y se puede invocar mediante intents implícitos, que pueden entregar mensajes recibidos de la app de Teléfono cuando el usuario opta por responder mediante un mensaje durante una llamada entrante. La app puede entregar mensajes a través de su propio sistema de mensajería.
  • La app tiene dos receptores de emisión, uno controlado por el permiso android.permission.BROADCAST_SMS y otro controlado por el permiso android.permission.BROADCAST_WAP_PUSH, que pueden detectar mensajes SMS y MMS basados en texto enviados al dispositivo, respectivamente. Luego, la app es responsable de escribir los mensajes en el proveedor de SMS y notificar a los usuarios.
EMERGENCY Todos los siguientes:
  • La app es una app del sistema.
  • La app tiene una actividad que presenta la información de emergencia del usuario. Cualquier persona puede navegar a esta pantalla a través del botón de emergencia en la actividad del marcador de emergencia.
HOME La app tiene una actividad que puede iniciar la pantalla principal cuando el usuario presiona el botón de inicio. La pantalla principal debe mostrar íconos y widgets de las apps, y admitir la navegación basada en botones o gestos (por ejemplo, deslizar hacia arriba para ver todas las apps).
CALL_REDIRECTION La app tiene un servicio controlado por el permiso android.permission.BIND_CALL_REDIRECTION_SERVICE, al que se puede vincular el framework de telecomunicaciones. El servicio recibe el número de teléfono saliente del marco de trabajo de las telecomunicaciones y realiza una de las siguientes acciones:
  • Permite que se realice la llamada tal como está.
  • Cambia el número saliente para que se enrute a través de un número de proxy.
  • Cancela la llamada.
CALL_SCREENING La app tiene un servicio restringido por el permiso android.permission.BIND_SCREENING_SERVICE, que realiza dos funciones:
  • Bloqueo y filtro de llamadas: El servicio puede elegir qué llamadas se deben enviar a la app de teléfono (y, posiblemente, hacer que suenen, según la configuración de No interrumpir o el volumen) y cuáles se deben enviar en silencio al buzón de voz.
  • Identificación de llamadas: El servicio puede identificar y mostrar información sobre una llamada a través de una interfaz de usuario.
SYSTEM_GALLERY Todos los siguientes:
  • La app es una app del sistema.
  • Solo los OEMs pueden otorgar este rol a la app.
  • La app proporciona una IU para que los usuarios almacenen, organicen y muestren sus videos e imágenes.
SYSTEM_AUTOMOTIVE_CLUSTER Todos los siguientes:
  • La app es una app del sistema en Automotive.
  • Solo los OEMs pueden otorgar este rol a la app.
  • La app proporciona la capacidad de una pantalla de clúster automotriz (por lo general, junto al volante) para que los usuarios respondan llamadas telefónicas y accedan a las listas de contactos y los registros de llamadas.
COMPANION_DEVICE_WATCH La app puede realizar solicitudes para asociarse con un dispositivo de reloj y administrarlo (con la API que proporciona la clase CompanionDeviceManager). Cuando el reloj y la app están conectados a través de la IU que proporciona la app, los usuarios pueden administrar su reloj desde la app, lo que incluye sincronizar contactos y calendario, y administrar notificaciones y llamadas telefónicas.
SYSTEM_AUTOMOTIVE_PROJECTION Todos los siguientes:
  • La app es una app del sistema.
  • Solo los OEMs pueden otorgar este rol a la app.
  • La app permite que la pantalla del teléfono se proyecta en la pantalla del vehículo. Permite que los conductores accedan a las apps de teléfonos Android y las controlen, como música, navegación, llamadas telefónicas y búsqueda, mediante mecanismos de entrada en el vehículo, como controles táctiles, del volante y por voz.
SYSTEM_SHELL Todos los siguientes:
  • La app es una app del sistema a la que se le asignó el UID Process.SHELL_UID.
  • Solo los OEMs pueden otorgar este rol a la app.
  • La app proporciona una interfaz que funciona a nivel de la línea de comandos para que los usuarios puedan interactuar con el SO Android. Por ejemplo, mostrar el contenido de una carpeta o iniciar apps. Las apps pueden ejecutar comandos de shell de forma programática (siempre que se hayan otorgado los permisos necesarios) o desde la herramienta ADB.
SYSTEM_CONTACTS Todos los siguientes:
  • La app es una app del sistema.
  • Solo los OEMs pueden otorgar este rol a la app.
  • La app proporciona una IU para que los usuarios administren sus contactos (por ejemplo, ver, compartir, agregar, quitar o buscar un contacto). La app actualiza el proveedor de contactos cuando el usuario actualiza sus contactos desde la app. Los usuarios también pueden llamar, enviar correos electrónicos o mensajes de texto a sus contactos desde la app.
SYSTEM_SPEECH_RECOGNIZER Todos los siguientes:
  • La app es una app del sistema.
  • Solo los OEMs pueden otorgar este rol a la app.
  • La app proporciona un servicio que puede realizar el reconocimiento de voz.
  • Cuando la app recibe transmisiones de micrófono en vivo de otra app para el reconocimiento de voz, atribuye correctamente el uso del micrófono a la app que realiza la llamada y actualiza las estadísticas de operación de la app según corresponda.
SYSTEM_WIFI_COEX_MANAGER Todos los siguientes:
  • La app es una app del sistema.
  • Solo los OEMs pueden otorgar este rol a la app.
  • La app tiene un servicio que establece de forma dinámica una lista de canales de Wi-Fi que el dispositivo debe evitar usar debido a la interferencia de la red móvil.
SYSTEM_WELLBEING Todos los siguientes:
  • La app es una app del sistema.
  • Solo los OEMs pueden otorgar este rol a la app.
  • La app debe proporcionarles a los usuarios la capacidad de reducir las distracciones y brindarles estadísticas sobre cómo usan su dispositivo (por ejemplo, su tiempo de pantalla por semana).
SYSTEM_TELEVISION_NOTIFICATION_HANDLER Todos los siguientes:
  • La app es una app del sistema.
  • Solo los OEMs pueden otorgar este rol a la app.
  • La app debe mostrar notificaciones emergentes a los usuarios en dispositivos de TV. La app también debe mostrar las notificaciones activas actuales cuando se envía el intent android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL (desde SystemUI).
SYSTEM_COMPANION_DEVICE_PROVIDER Todos los siguientes:
  • La app es una app del sistema.
  • Solo los OEMs pueden otorgar este rol a la app.
  • La app debe poder detectar dispositivos periféricos en su proximidad. Debe tener una IU en la que el usuario pueda confirmar que un dispositivo periférico determinado debe estar asociado y administrado por una app. Cuando el usuario confirma, la app de administración otorga permiso a la app asociada para acceder al dispositivo periférico (por ejemplo, su nombre, dirección, clase y estado de vinculación) y puede iniciar el proceso de vinculación.
SYSTEM_DOCUMENT_MANAGER Todos los siguientes:
  • La app es una app del sistema.
  • Solo los OEMs pueden otorgar este rol a la app.
  • La app tiene una actividad que permite a los usuarios acceder a documentos existentes y crear documentos nuevos en el dispositivo.
  • La app debe cumplir con todos los requisitos que se describen en la sección 2.2.3 del CDD de Android. Software bajo el encabezado [3.2.3.1/H-0-1].
SYSTEM_ACTIVITY_RECOGNIZER Todos los siguientes:
  • La app es una app del sistema.
  • La app tiene un servicio controlado por android.permission.ACTIVITY_RECOGNITION, que puede realizar el reconocimiento de actividad (por ejemplo, correr o andar en bicicleta).
SYSTEM_UI Todos los siguientes:
  • La app es una app del sistema.
  • Solo los OEMs pueden otorgar este rol a la app.
  • La app tiene una interfaz para que los usuarios interactúen con sus teléfonos. Por ejemplo, la pantalla principal del teléfono, la navegación, las apps recientes, la configuración rápida, la barra de notificaciones, la pantalla de bloqueo y el control de volumen.
SYSTEM_TELEVISION_REMOTE_SERVICE Todos los siguientes:
  • La app es una app del sistema en Android TV.
  • Solo los OEMs pueden otorgar este rol a la app.
  • La app tiene un servicio que puede comunicarse con el dispositivo HID del control remoto de la TV (por ejemplo, a través de BLE), insertar eventos (por ejemplo, clics en botones) y enviar otros datos (por ejemplo, transmisión de audio desde un micrófono integrado en el control remoto) a la plataforma.
SYSTEM_UI_INTELLIGENCE Todos los siguientes:
  • Es un servicio preinstalado que proporciona, a través de las APIs del framework (APIs públicas o del sistema), un procesador inteligente integrado en el dispositivo para las funciones de la IU del sistema (por ejemplo, predecir y mostrar las próximas apps para los usuarios).
  • El servicio debe cumplir con todos los requisitos que se describen en el artículo 9.8.6 Captura de contenido del CDD de Android.
  • El servicio no puede tener el permiso android.permission.INTERNET. En su lugar, debe acceder a Internet a través de APIs bien definidas en un proyecto de código abierto.
  • El servicio no se puede vincular a apps, excepto a las siguientes apps del sistema: Bluetooth, Contactos, Media, Telefonía, SystemUI y componentes que proporcionan APIs de Internet. Cada vinculación permitida debe configurarse de forma explícita a través de la configuración de <allow-association> en la configuración del sistema.
  • El servicio no puede compartir datos con apps, a menos que haya una acción directa del usuario (por ejemplo, el usuario presiona de forma explícita un botón cada vez que se comparten los datos).
SYSTEM_AMBIENT_AUDIO_INTELLIGENCE Todos los siguientes:
  • Son idénticas a las condiciones de SYSTEM_UI_INTELLIGENCE, excepto que el servicio preinstalado proporciona un procesador inteligente integrado en el dispositivo para el audio ambiente (por ejemplo, reconocer canciones que se reproducen cerca del dispositivo).
SYSTEM_AUDIO_INTELLIGENCE Todos los siguientes:
  • Son idénticas a las condiciones de SYSTEM_UI_INTELLIGENCE, excepto que el servicio preinstalado proporciona un procesador inteligente integrado en el dispositivo para audio (por ejemplo, subtítulos de videos, podcasts, llamadas telefónicas, videollamadas y mensajes de audio).
SYSTEM_NOTIFICATION_INTELLIGENCE Todos los siguientes:
  • Es idéntico a las condiciones de SYSTEM_UI_INTELLIGENCE, excepto que el servicio preinstalado proporciona un procesador inteligente integrado en el dispositivo para las notificaciones (por ejemplo, sugiere respuestas y acciones para las notificaciones de mensajes).
SYSTEM_TEXT_INTELLIGENCE Todos los siguientes:
  • Idéntico a las condiciones de SYSTEM_UI_INTELLIGENCE, excepto que el servicio preinstalado proporciona un procesador de texto inteligente integrado en el dispositivo (por ejemplo, proporciona traducción instantánea o autocompletado).
SYSTEM_VISUAL_INTELLIGENCE Todos los siguientes:
  • Son idénticas a las condiciones de SYSTEM_UI_INTELLIGENCE, excepto que el servicio preinstalado proporciona un procesador inteligente integrado en el dispositivo para funciones visuales que implica el análisis de datos de la cámara. Por ejemplo, mantener activa la pantalla del teléfono mientras el usuario la mira o determinar la orientación ideal de la pantalla según la orientación facial del usuario desde la cámara frontal del dispositivo.
COMPANION_DEVICE_APP_STREAMING Todos los siguientes:
  • La app es una app del sistema.
  • Solo los OEMs pueden otorgar este rol a la app.
  • A partir de Android 15
    Cuando se establece la conexión inicial del dispositivo A al dispositivo B:
    Ambos dispositivos DEBEN tener al menos una cuenta coincidente en su AccountManager, y el emparejamiento se debe confirmar con un código de un solo uso.
    • El usuario debe confirmar la contraseña de la cuenta en el dispositivo remoto secundario cuando vincula los dispositivos o
    • El código de un solo uso se debe mostrar en el dispositivo de origen y se debe ingresar en el dispositivo conectado.
    • No se requiere rango durante la transmisión.

    O bien, los dispositivos A y B DEBEN estar dentro del alcance del Bluetooth entre sí, y la transmisión debe autorizarse con un código único.
    • El código de un solo uso se muestra en el dispositivo de origen y se ingresa en el dispositivo conectado.
    • Los dispositivos deben permanecer dentro del alcance de la señal Bluetooth entre sí durante la transmisión.
  • La app puede crear y administrar canales de comunicación con dispositivos conectados para que puedan intercambiar datos. La app y los dispositivos conectados deben autenticarse correctamente (por ejemplo, demostrando su conocimiento de las claves compartidas) para establecer estos canales de comunicación. Los canales de comunicación deben tener protección de encriptación.
  • La app puede enviar notificaciones del dispositivo local al dispositivo conectado para permitir que el usuario realice acciones en las notificaciones del dispositivo conectado.
  • Debes poder transmitir los metadatos necesarios para la transmisión de apps al dispositivo conectado, como la lista de apps disponibles en el dispositivo local.
  • Transmitir apps del dispositivo local al dispositivo conectado después de que el usuario haya indicado su preferencia para hacerlo con consentimiento explícito (en el teléfono o en el dispositivo conectado)
  • Ser capaz de volver a reproducir (insertar) eventos que ocurran en una app transmitida en un dispositivo conectado, en el dispositivo local Por ejemplo, volver a reproducir un evento táctil en la tablet en las mismas coordenadas del teléfono.
  • La app puede reemplazar la transmisión del micrófono del dispositivo local por la transmisión del micrófono de un dispositivo conectado mientras una app transmitida usa el micrófono.
  • La app captura audio del dispositivo y lo transmite al dispositivo conectado.
  • Se debe bloquear la transmisión de la cámara del dispositivo local mientras una app transmitida usa la cámara.
  • Se debe verificar la integridad de la compilación del SO del dispositivo conectado (por ejemplo, mediante la certificación del dispositivo como en VerifiedBootState).
  • Transmite solo apps en las que haya una sola cuenta coincidente en el registro de cuentas integrado en el dispositivo (por ejemplo, la clase AccountManager en Android) en ambos dispositivos. Si no es así, la transmisión debe estar autorizada con un código de un solo uso que se muestra en el dispositivo de origen y se ingresa en el dispositivo conectado. Ten en cuenta que, en el caso de los dispositivos que admiten varios usuarios (y no varias cuentas) con el mismo aislamiento de datos confiable como en el modo multiusuario de Android, un usuario se cuenta como un dispositivo.
  • Se debe detener la transmisión y desconectarse de un dispositivo conectado de inmediato si vence o se revoca la autenticación de la cuenta en el dispositivo conectado.
  • Se deben desconectar las sesiones de transmisión continuas de apps si el usuario no interactúa con el dispositivo conectado (por ejemplo, el teclado, la pantalla táctil y el mouse están inactivos) durante 5 minutos. Las apps de transmisión de video están exentas de este requisito.
  • A partir de Android 15
    Se deben desconectar todos los dispositivos virtuales cuando se agote el tiempo de espera de inactividad del dispositivo remoto en el que se ve el contenido de la pantalla. Puede mantener la pantalla del dispositivo remoto encendida para casos como WakeLock, que mantienen la pantalla del dispositivo Android encendida. Debe haber un tiempo de espera de inactividad. Si el dispositivo remoto no tiene un tiempo de espera de inactividad por sí solo, se debe usar un tiempo de espera de inactividad de un máximo de 5 minutos.
  • Si el dispositivo de origen usa el factor de conocimiento de la pantalla de bloqueo (LSKF), cuando la pantalla está bloqueada, la app no debe transmitir contenido a un dispositivo conectado, a menos que ese dispositivo tenga una pantalla de bloqueo y esté desbloqueada.
  • Si un administrador administra el dispositivo, la app debe respetar las políticas que establece el administrador para habilitar o inhabilitar la transmisión de apps a dispositivos cercanos (por ejemplo, usando la configuración de DevicePolicyManager en Android).
  • Debes asegurarte de que la pantalla remota y todas las fuentes de eventos de entrada remota pertenezcan al mismo dispositivo lógico (por ejemplo, una pantalla remota y un teclado conectado) desde la perspectiva del usuario, y de que los eventos se enruten según corresponda.
  • El usuario debe poder finalizar la transmisión desde el dispositivo local, por ejemplo, con un botón en una notificación persistente. La pantalla de bloqueo controla este comportamiento si el teléfono tiene configurado un bloqueo de pantalla. A partir de Android 15, se debe mostrar esta indicación persistente en el dispositivo local que siempre es visible y está en la mitad superior de la pantalla.
  • Se debe mostrar una indicación visual en el dispositivo de origen cuando la transmisión se realiza en otro dispositivo, como un ícono en la barra de estado o una notificación persistente.
DEVICE_POLICY_MANAGEMENT Todos los siguientes:
  • Solo los OEMs pueden otorgar este rol a la app. Las apps no pueden solicitar este rol, ya que está destinado a otorgarse de forma predeterminada al nombre del paquete que define el OEM cuando se envía el dispositivo.
  • La app debe poder aprovisionar un perfil administrado (propietario del perfil) o un dispositivo administrado (propietario del dispositivo), lo que incluye descargar e instalar el cliente de política de dispositivo adecuado para ser el propietario del dispositivo o del perfil si es necesario.
  • De manera opcional, la app puede actualizar recursos de forma dinámica, como cadenas, elementos de diseño que se usan para la administración de políticas del dispositivo.
  • La app puede ser una app del sistema preinstalada o puede descargarse y, luego, instalarse antes del aprovisionamiento.
  • En el caso de los casos de aprovisionamiento del propietario del perfil, cuando la app del titular del rol se instala en un usuario de Android determinado, se debe instalar en todos los perfiles aplicables para ese usuario.
SYSTEM_APP_PROTECTION_SERVICE Todos los siguientes:
  • La app es una app del sistema.
  • El único propósito de la app es detectar apps potencialmente dañinas (apps que podrían poner en riesgo a los usuarios, sus datos o sus dispositivos, como troyanos, apps de phishing y software espía) o software no deseado para dispositivos móviles.
  • La app debe cumplir con todos los requisitos que se describen en la sección 9.8.6 del CDD de Android. Datos ambientales y a nivel del SO.
  • La app no debe declarar el permiso normal android.permission.INTERNET. En su lugar, debe acceder a Internet a través de APIs bien definidas en un proyecto de código abierto.
  • La app no debe vincularse a otras apps, excepto a las siguientes apps del sistema: Controlador de permisos y componentes que proporcionan APIs de telefonía e Internet. Cada vinculación permitida se debe establecer de forma explícita a través de la configuración <allow-association> en la configuración del sistema.
  • La app no debe compartir datos con otras apps, a menos que haya una acción directa del usuario (por ejemplo, el usuario presiona de forma explícita un botón cada vez que se comparten los datos).
SYSTEM_AUTOMOTIVE_CALENDAR_SYNC_MANAGER Todos los siguientes:
  • La app es una app del sistema.
  • Solo los OEMs pueden otorgar este rol a la app.
  • La app debe transferir datos de calendario del teléfono iOS o Android del usuario al dispositivo Android Auto. El dispositivo Android Auto debe almacenar estos datos de calendario en el proveedor de calendario.
  • La app debe proporcionar un componente de IU en el teléfono que el usuario pueda usar para activar la sincronización del calendario y seleccionar los calendarios que se sincronizarán. La app debe proporcionar un componente de IU en el teléfono que el usuario pueda usar para desactivar la sincronización del calendario.
  • La app debería funcionar sin conexión a Internet. Por ejemplo, mediante conexiones directas con cable o inalámbricas.
AUTOMOTIVE_NAVIGATION Todos los siguientes:
  • La app tiene una actividad que las apps pueden invocar a través de solicitudes de intents implícitos, que muestra la ubicación y el entorno actuales del usuario.
  • La app tiene una actividad que las apps pueden invocar a través de solicitudes de intent implícitos, lo que permite que el usuario navegue a una geolocalización especificada.
  • La app tiene una actividad que se inicia en el clúster de instrumentos cuando la app mantiene el enfoque de navegación. La actividad debe mostrar la ubicación actual del usuario y sus alrededores, y permitirle navegar a una ubicación geográfica específica.
COMPANION_DEVICE_COMPUTER Todos los siguientes:
  • La app es una app del sistema.
  • Solo los OEMs pueden otorgar este rol a la app.
  • Permite que los usuarios dupliquen las notificaciones y accedan a fotos y contenido multimedia desde el teléfono en una computadora conectada.
SYSTEM_SETTINGS_INTELLIGENCE Al menos una de las siguientes opciones:
  • La app es una app del sistema.
  • Solo los OEMs pueden otorgar este rol a la app.
  • Tiene un servicio que proporciona funciones de inteligencia para la app de Configuración, como sugerencias y búsqueda.
NOTES Todos los siguientes:
COMPANION_DEVICE_GLASSES La app puede realizar solicitudes para asociarse con un dispositivo de gafas y administrarlo (con la API que proporciona la clase CompanionDeviceManager). Cuando el dispositivo de lentes inteligentes y la app están conectados con la IU que proporciona el CDM, los usuarios pueden administrar su dispositivo de lentes inteligentes otorgándole acceso a los contactos y permiso para administrar notificaciones y llamadas telefónicas.
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING Todos los siguientes:
  • La app es una app del sistema.
  • Solo los OEMs pueden otorgar este rol a la app.
  • A partir de Android 15
    Cuando se establece la conexión inicial del dispositivo A al dispositivo B:
    Ambos dispositivos DEBEN tener al menos una cuenta coincidente en su AccountManager, y el emparejamiento se debe confirmar con un código de un solo uso.
    • El usuario debe confirmar la contraseña de la cuenta en el dispositivo remoto secundario cuando vincula los dispositivos o
    • El código de un solo uso se debe mostrar en el dispositivo de origen y se debe ingresar en el dispositivo conectado.
    • No se requiere rango durante la transmisión.

    O bien, los dispositivos A y B DEBEN estar dentro del alcance del Bluetooth entre sí, y la transmisión debe autorizarse con un código único.
    • El código de un solo uso se muestra en el dispositivo de origen y se ingresa en el dispositivo conectado.
    • Los dispositivos deben permanecer dentro del alcance de la señal Bluetooth entre sí durante la transmisión.
  • La app puede crear y administrar canales de comunicación con dispositivos conectados para que estos puedan intercambiar datos. La app y los dispositivos conectados deben autenticarse de forma correcta (por ejemplo, demostrando su conocimiento de las claves compartidas) para establecer estos canales de comunicación. Los canales de comunicación deben tener protección de encriptación de extremo a extremo.
  • La app puede enviar notificaciones del dispositivo local al dispositivo conectado para permitir que el usuario realice acciones en las notificaciones del dispositivo conectado.
  • Debes poder transmitir los metadatos necesarios para la transmisión de apps al dispositivo conectado, como la lista de apps disponibles en el dispositivo local.
  • Transmitir apps del dispositivo local al dispositivo conectado después de que el usuario haya indicado su preferencia para hacerlo con consentimiento explícito (en el teléfono o en el dispositivo conectado)
  • Ser capaz de volver a reproducir (insertar) eventos que ocurran en una app transmitida en un dispositivo conectado, en el dispositivo local Por ejemplo, volver a reproducir un evento táctil en la tablet en las mismas coordenadas que en el teléfono o volver a reproducir un evento de entrada que se produjo en el dispositivo de gafas con la misma semántica de entrada que en el teléfono.
  • La app puede reemplazar la transmisión del micrófono del dispositivo local por la transmisión del micrófono de un dispositivo conectado mientras una app transmitida usa el micrófono.
  • La app captura audio del dispositivo y lo transmite al dispositivo conectado.
  • Debe verificar la integridad de la compilación del SO del dispositivo conectado (por ejemplo, mediante la certificación del dispositivo como en VerifiedBootState).
  • Transmite solo apps en las que haya una sola cuenta coincidente en el registro de cuentas integrado en el dispositivo (por ejemplo, la clase AccountManager en Android) en ambos dispositivos. Si no es así, la transmisión debe estar autorizada con un código de un solo uso que se muestra en el dispositivo de origen y se ingresa en el dispositivo conectado. Ten en cuenta que, en el caso de dispositivos que admiten multiusuarios (y no cuentas múltiples) con el mismo aislamiento de datos confiable, como en Multiusuario en Android, un usuario se cuenta como un dispositivo.
  • Se debe detener la transmisión y desconectarse de un dispositivo conectado de inmediato si vence o se revoca la autenticación de la cuenta en el dispositivo conectado.
  • Si el dispositivo de origen usa LSKF, cuando la pantalla está bloqueada, la app no debe transmitir contenido a un dispositivo conectado, a menos que ese dispositivo tenga una pantalla de bloqueo y esté desbloqueada.
  • Si un administrador administra el dispositivo, la app debe respetar las políticas que establece el administrador para habilitar o inhabilitar la transmisión a dispositivos cercanos (por ejemplo, usando la configuración de DevicePolicyManager en Android).
  • Se debe garantizar que la pantalla remota y todas las fuentes de eventos de entrada remota pertenezcan al mismo dispositivo lógico (por ejemplo, una pantalla remota y un teclado conectado) desde la perspectiva del usuario, y que los eventos se enruten según corresponda.
  • El usuario debe poder finalizar la transmisión desde el dispositivo local, por ejemplo, con un botón en una notificación persistente. La pantalla de bloqueo controla este comportamiento si el teléfono tiene configurado un bloqueo de pantalla.
  • Se debe mostrar una indicación visual en el dispositivo de origen cuando la transmisión se realiza en otro dispositivo, como un ícono en la barra de estado o una notificación persistente.
WALLET Uno de los siguientes:
  • La app tiene un servicio APDU de NFC que registra de manera estática al menos un AID en la categoría PAYMENT.
  • La app implementa una instancia de QuickAccessWalletService.