Roles de Android

Un rol es un nombre único dentro del sistema asociado a ciertos permisos y privilegios. Las apps pueden solicitar que se mantengan 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:
  • La app tiene una actividad que realiza acciones de asistencia, dada 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 controlado por el permiso android.permission.BIND_VOICE_INTERACTION, que puede realizar el reconocimiento de voz y alojar sesiones de interacción por voz activas. Además, la app tiene una marca explícita que indica que el servicio puede controlar la acción de asistencia.
BROWSER Todos los siguientes:
  • La app tiene una actividad que las apps pueden invocar a través de solicitudes de intents implícitos, que muestra una página web correspondiente a una dirección http://.
  • La app debe controlar la navegación entre vínculos. Es decir, si el usuario está viendo una página web y hace clic en una dirección http:// en el 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 intents implícitos, que proporciona la interfaz de usuario de llamada mientras el dispositivo está en una llamada.
  • La app puede controlar intents de llamadas entrantes, mostrarle al usuario la información relacionada con la llamada (por ejemplo, el número de teléfono de la persona que llama) y permitirle contestar o rechazar la llamada.
  • La app proporciona al usuario un medio para iniciar llamadas y ver un historial de llamadas en su dispositivo.
SMS Todos los siguientes:
  • La app satisface todos los requisitos para las apps de SMS.
  • La app tiene una actividad que las apps pueden invocar a través de solicitudes de intents implícitos, que pueden enviar un mensaje a un número de teléfono.
  • La app tiene un servicio protegido por el permiso android.permission.SEND_RESPOND_VIA_MESSAGE y se puede invocar con intents implícitos, que pueden entregar mensajes recibidos de la app de Teléfono cuando el usuario elige responder por 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 transmisiones, uno controlado por el permiso android.permission.BROADCAST_SMS y otro controlado por el permiso android.permission.BROADCAST_WAP_PUSH, que pueden escuchar los mensajes SMS y MMS basados en texto que se envían 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 de apps, widgets y admitir la navegación basada en botones o gestos (por ejemplo, deslizar el dedo 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 el framework de telecomunicaciones puede vincularse. El servicio recibe el número de teléfono saliente del framework de 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 dirija a través de un número de proxy.
  • Cancela la llamada.
CALL_SCREENING La app tiene un servicio protegido 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 del teléfono (y, potencialmente, sonar, según el modo No molestar o el volumen) y cuáles se deben enviar al buzón de voz de forma silenciosa.
  • 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 ofrece la capacidad de mostrar un clúster automotriz (por lo general, adyacente al volante) para que los usuarios respondan llamadas telefónicas y accedan a listas de contactos y 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 el reloj desde la app, lo que incluye sincronizar los contactos y el calendario, y administrar las notificaciones y las 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 proyectar la pantalla del teléfono en la pantalla del vehículo. Permite que los conductores accedan a las apps y las controlen en teléfonos Android, incluidas las de música, navegación, llamadas telefónicas y búsqueda, a través de los mecanismos de entrada del vehículo, como los controles táctiles, los del volante y los comandos por voz.
SYSTEM_SHELL Todos los siguientes:
  • La app es una app del sistema a la que se le asigna 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 (si se otorgaron los permisos necesarios) o desde la herramienta de 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 datos móviles.
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 permitir que los usuarios reduzcan las distracciones y brindarles estadísticas sobre cómo usan sus dispositivos (por ejemplo, el tiempo que pasan frente a la 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 cercanía. Debe tener una IU en la que el usuario pueda confirmar que un dispositivo periférico determinado debe estar asociado con una app y ser administrado por ella. Cuando el usuario confirma, la app administradora otorga a la app asociada permiso 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 en 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, una 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 la sección 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 puede vincularse a apps, excepto a las siguientes apps del sistema: Bluetooth, Contactos, Multimedia, 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 <allow-association> en la configuración del sistema.
  • El servicio no puede compartir datos con las apps, a menos que haya una acción directa del usuario (por ejemplo, el usuario presiona explícitamente un botón cada vez que se comparten los datos).
SYSTEM_AMBIENT_AUDIO_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 el audio ambiente (por ejemplo, para reconocer canciones que se reproducen cerca del dispositivo).
SYSTEM_AUDIO_INTELLIGENCE Todos los siguientes:
  • Es idéntico a las condiciones de SYSTEM_UI_INTELLIGENCE, excepto que el servicio preinstalado proporciona un procesador inteligente integrado para el audio (por ejemplo, para subtitular 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 en el dispositivo para las notificaciones (por ejemplo, sugiere respuestas y acciones para las notificaciones de mensajes).
SYSTEM_TEXT_INTELLIGENCE Todos los siguientes:
  • Es idéntica a las condiciones de SYSTEM_UI_INTELLIGENCE, excepto que el servicio preinstalado proporciona un procesador inteligente integrado en el dispositivo para el texto (por ejemplo, proporciona traducción en vivo o autocompletado).
SYSTEM_VISUAL_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 funciones visuales que implican el análisis de los 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 del rostro del usuario que detecta 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.
  • Casos de uso permitidos:
    • Transmisión, duplicación o transmisión por Internet de apps que permiten la transmisión, la duplicación o la transmisión por Internet desde un dispositivo con Android, como un teléfono celular o una tablet, a una computadora de escritorio o laptop
  • Cuando se establece la conexión inicial del dispositivo A al dispositivo B, haz lo siguiente:
    • La vinculación DEBE autorizarse con un código único que se muestra en el dispositivo fuente (A) y se ingresa en el dispositivo conectado (B). Como alternativa, si ambos dispositivos tienen al menos una cuenta coincidente en su AccountManager de Android, el usuario PUEDE confirmar la vinculación ingresando la contraseña de la cuenta en el dispositivo conectado (B).
    • Ambos dispositivos deben estar cerca 1 durante la vinculación.
  • Ambos dispositivos deben estar cerca 1 mientras se realiza 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 entre sí 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 de extremo a extremo.
  • La app puede enviar notificaciones desde el dispositivo fuente (A) al dispositivo conectado (B) para permitir que el usuario realice acciones en las notificaciones en el dispositivo conectado (B).
  • Poder transmitir los metadatos necesarios para la transmisión de apps al dispositivo conectado (B), como la lista de apps disponibles en el dispositivo fuente (A)
  • Poder transmitir apps desde el dispositivo fuente (A) al dispositivo conectado (B) después de que el usuario haya indicado su preferencia para hacerlo con consentimiento explícito (ya sea en el dispositivo fuente [A] o en el dispositivo conectado [B]).
  • Poder reproducir (insertar) eventos que ocurren en una app transmitida en el dispositivo conectado (B) en el dispositivo fuente (A) Por ejemplo, reproducir un evento táctil en el dispositivo conectado (B) en las mismas coordenadas que en el dispositivo fuente (A), o reproducir un evento de entrada que ocurrió en el dispositivo conectado (B) con la misma semántica de entrada que en el dispositivo fuente (A).
  • La app puede reemplazar el flujo del micrófono del dispositivo fuente por el flujo del micrófono de un dispositivo conectado mientras una app transmitida usa el micrófono.
  • La app captura el audio del dispositivo fuente (A) y lo transmite al dispositivo conectado (B).
  • Se RECOMIENDA bloquear el acceso a las apps de configuración y a las tiendas de aplicaciones desde el dispositivo conectado (B).
  • A partir de Android 16, se DEBE impedir la captura de pantalla y la lectura de pantalla de contenido sensible, como ventanas y superficies seguras, en el dispositivo conectado (B).
  • DEBE verificar la integridad de la compilación del SO del dispositivo conectado (por ejemplo, usando la certificación del dispositivo como en VerifiedBootState).
  • Solo transmitir apps en las que haya una sola cuenta coincidente en el registro de cuentas del dispositivo (por ejemplo, la clase AccountManager en Android) en ambos dispositivos Si no es así, la transmisión DEBE autorizarse con un código único que se muestra en el dispositivo fuente (A) y se ingresa en el dispositivo conectado (B). 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 que en Android multi-user, un usuario se considera un dispositivo.
  • DEBE detener la transmisión y desconectarse del dispositivo conectado (B) inmediatamente si vence o se revoca la autenticación de la cuenta en el dispositivo conectado (B).
  • DEBE detener la transmisión y desconectarse del dispositivo conectado (B) cuando se agote el tiempo de espera de inactividad del dispositivo conectado (B) en el que se ve el contenido de la pantalla. MAY puede mantener encendida la pantalla del dispositivo conectado en casos como WakeLock, que mantiene encendida la pantalla del dispositivo Android. Debe haber un tiempo de espera por inactividad. Si el dispositivo conectado (B) no tiene un tiempo de espera por inactividad, se DEBE usar un tiempo de espera por inactividad de un máximo de 5 minutos.
  • Si el dispositivo fuente (A) usa el factor de conocimiento de la pantalla de bloqueo (LSKF), cuando la pantalla está bloqueada, la app NO DEBE transmitir apps a un dispositivo conectado (B), a menos que el dispositivo conectado (B) tenga una pantalla de bloqueo y esté desbloqueado.
  • Si el dispositivo fuente (A) está administrado por un administrador, la app DEBE respetar las políticas establecidas por el administrador sobre la habilitación o inhabilitación de la transmisión a dispositivos cercanos (por ejemplo, con la configuración de DevicePolicyManager en Android).
  • DEBE garantizar que las pantallas remotas 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 fuente (A), por ejemplo, con un botón en una notificación persistente. Este comportamiento está controlado por la pantalla de bloqueo si el dispositivo fuente (A) tiene un bloqueo de pantalla configurado. DEBE mostrar esta opción persistente en el dispositivo fuente (A), que siempre es visible y se encuentra en la parte superior de la página.
  • DEBE mostrar una ayuda visual en el dispositivo fuente (A) cuando la transmisión se esté realizando en otro dispositivo, como un ícono en la barra de estado o una notificación persistente.
DEVICE_POLICY_MANAGEMENT Todos los siguientes:
  • Solo los OEM pueden otorgar este rol a la app. Las apps no pueden solicitar este rol, ya que está diseñado para otorgarse de forma predeterminada al nombre del paquete definido por 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íticas del dispositivo adecuado para ser el propietario del dispositivo o del perfil si es necesario.
  • De manera opcional, la app puede actualizar de forma dinámica los recursos, como cadenas y elementos de diseño que se usan para la administración de políticas de dispositivos.
  • La app puede ser una app del sistema preinstalada o se puede descargar e instalar antes del aprovisionamiento.
  • En el caso del aprovisionamiento del propietario del perfil, cuando la app del titular del rol se instala en un usuario de Android determinado, debe instalarse 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, los datos de los usuarios o los dispositivos, como troyanos, phishing y spyware) 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 a nivel del SO y datos ambientales.
  • 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: Permission Controller y componentes que proporcionan APIs de telefonía y de Internet. Cada vinculación permitida debe configurarse 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 explícitamente 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 los datos del calendario del teléfono iOS o Android del usuario al dispositivo Android Auto. El dispositivo Android Auto debe almacenar estos datos del 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 debe funcionar sin conexión a Internet. Por ejemplo, con conexiones inalámbricas o con cable directas.
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 actual del usuario y sus alrededores.
  • La app tiene una actividad que las apps pueden invocar a través de solicitudes de intents implícitos, lo que permite al usuario navegar a una ubicación geográfica especificada.
  • La app tiene una actividad que se inicia en el panel de instrumentos cuando la app mantiene el enfoque de navegación. La actividad debe mostrar la ubicación actual del usuario, el entorno 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 las fotos y el contenido multimedia del teléfono en una computadora conectada.
SYSTEM_SETTINGS_INTELLIGENCE Al menos uno de los siguientes:
  • La app es una app del sistema.
  • Solo los OEMs pueden otorgar este rol a la app.
  • Tiene un servicio que proporciona funciones inteligentes 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 anteojos y administrarlo (con la API que proporciona la clase CompanionDeviceManager). Cuando los lentes inteligentes y la app están conectados a través de la IU proporcionada por CDM, los usuarios pueden administrar sus lentes inteligentes otorgándoles acceso a los contactos y permiso para administrar las notificaciones y las 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.
  • Casos de uso permitidos:
    • Transmisión de apps desde un dispositivo con Android, como un teléfono celular o una tablet, a un vehículo.
    • Transmisión de apps desde un dispositivo con Android, como un teléfono celular o una tablet, a un dispositivo de XR
  • Cuando se establece la conexión inicial del dispositivo A al dispositivo B, haz lo siguiente:
    • La vinculación DEBE autorizarse con un código único que se muestra en el dispositivo fuente (A) y se ingresa en el dispositivo conectado (B). Como alternativa, si ambos dispositivos tienen al menos una cuenta coincidente en su AccountManager de Android, el usuario PUEDE confirmar la vinculación ingresando la contraseña de la cuenta en el dispositivo conectado (B).
    • Ambos dispositivos deben estar cerca 1 durante la vinculación.
  • Ambos dispositivos deben estar cerca 1 mientras se realiza 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 entre sí 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 de extremo a extremo.
  • La app puede enviar notificaciones desde el dispositivo fuente (A) al dispositivo conectado (B) para permitir que el usuario realice acciones en las notificaciones en el dispositivo conectado (B).
  • Poder transmitir los metadatos necesarios para la transmisión de apps al dispositivo conectado (B), como la lista de apps disponibles en el dispositivo fuente (A)
  • Poder transmitir apps desde el dispositivo fuente (A) al dispositivo conectado (B) después de que el usuario haya indicado su preferencia para hacerlo con consentimiento explícito (ya sea en el dispositivo fuente [A] o en el dispositivo conectado [B]).
  • Poder reproducir (insertar) eventos que ocurren en una app transmitida en el dispositivo conectado (B) en el dispositivo fuente (A) Por ejemplo, reproducir un evento táctil en el dispositivo conectado (B) en las mismas coordenadas que en el dispositivo fuente (A), o reproducir un evento de entrada que ocurrió en el dispositivo conectado (B) con la misma semántica de entrada que en el dispositivo fuente (A).
  • La app puede reemplazar el flujo del micrófono del dispositivo fuente por el flujo del micrófono de un dispositivo conectado mientras una app transmitida usa el micrófono.
  • La app captura el audio del dispositivo fuente (A) y lo transmite al dispositivo conectado (B).
  • Se RECOMIENDA bloquear el acceso a las apps de configuración y a las tiendas de aplicaciones desde el dispositivo conectado (B).
  • A partir de Android 25Q2, se DEBE impedir la captura de pantalla y la lectura de pantalla de contenido sensible, como ventanas y superficies seguras, en el dispositivo conectado (B).
  • DEBE verificar la integridad de la compilación del SO del dispositivo conectado (por ejemplo, usando la certificación del dispositivo como en VerifiedBootState).
  • Solo transmitir apps en las que haya una sola cuenta coincidente en el registro de cuentas del dispositivo (por ejemplo, la clase AccountManager en Android) en ambos dispositivos Si no es así, la transmisión DEBE autorizarse con un código único que se muestra en el dispositivo fuente (A) y se ingresa en el dispositivo conectado (B). 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 que en Android multi-user, un usuario se considera un dispositivo.
  • DEBE detener la transmisión y desconectarse del dispositivo conectado (B) inmediatamente si vence o se revoca la autenticación de la cuenta en el dispositivo conectado (B).
  • DEBE detener la transmisión y desconectarse del dispositivo conectado (B) cuando se agote el tiempo de espera de inactividad del dispositivo conectado (B) en el que se ve el contenido de la pantalla. MAY puede mantener encendida la pantalla del dispositivo conectado en casos como WakeLock, que mantiene encendida la pantalla del dispositivo Android. Debe haber un tiempo de espera por inactividad. Si el dispositivo conectado (B) no tiene un tiempo de espera por inactividad, se DEBE usar un tiempo de espera por inactividad de un máximo de 5 minutos.
  • Si el dispositivo fuente (A) usa el factor de conocimiento de la pantalla de bloqueo (LSKF), cuando la pantalla está bloqueada, la app NO DEBE transmitir apps a un dispositivo conectado (B), a menos que el dispositivo conectado (B) tenga una pantalla de bloqueo y esté desbloqueado.
  • Si el dispositivo fuente (A) está administrado por un administrador, la app DEBE respetar las políticas establecidas por el administrador sobre la habilitación o inhabilitación de la transmisión a dispositivos cercanos (por ejemplo, con la configuración de DevicePolicyManager en Android).
  • DEBE garantizar que las pantallas remotas 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 fuente (A), por ejemplo, con un botón en una notificación persistente. Este comportamiento está controlado por la pantalla de bloqueo si el dispositivo fuente (A) tiene un bloqueo de pantalla configurado. DEBE mostrar esta opción persistente en el dispositivo fuente (A), que siempre es visible y se encuentra en la parte superior de la página.
  • DEBE mostrar una ayuda visual en el dispositivo fuente (A) cuando la transmisión se esté realizando 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 de APDU de NFC que registra de forma estática al menos un AID en la categoría PAYMENT.
  • La app implementa una instancia de QuickAccessWalletService.

1 La proximidad se define cuando los dos dispositivos están dentro del alcance de Bluetooth o Wi-Fi, o bien cuando usan la misma red local.