Perfiles de dispositivos complementarios

El perfil de dispositivo complementario, que se introdujo en Android 12, es una función que permite que las apps complementarias soliciten un conjunto de permisos específicos para el tipo de dispositivo complementario, por ejemplo, un reloj inteligente. El uso de un perfil de dispositivo complementario simplifica el proceso de inscripción, ya que permite que las apps muestren un mensaje único a los usuarios en sus dispositivos móviles para solicitar un conjunto definido de permisos en lugar de varios mensajes que soliciten permisos de forma individual. Esto puede permitir una experiencia de configuración más optimizada y mejores tasas de participación para las apps complementarias.

Para usar perfiles de dispositivos complementarios, las apps complementarias deben cumplir con los siguientes requisitos:

  • Administrar un dispositivo complementario (por ejemplo, un reloj inteligente)
  • Tener funciones de la app o llamar a APIs de Android que requieran todos los permisos definidos para el perfil de dispositivo complementario

Cada perfil de dispositivo complementario corresponde a un rol de Android. Para obtener más información sobre los permisos y la función de Android correspondiente de cada perfil, consulta Perfiles de dispositivos complementarios para apps de terceros.

Para obtener más información sobre los dispositivos complementarios, consulta Sincronización de dispositivos complementarios.

Comportamiento del dispositivo

En esta sección, se describe el comportamiento del dispositivo cuando se usan perfiles de dispositivos complementarios.

Cuando un usuario acepta la solicitud de una app para crear una asociación con un dispositivo complementario, el servicio CompanionDeviceManager (CDM) asigna el rol de perfil de dispositivo (por ejemplo, reloj) a la app complementaria y le otorga todos los permisos definidos para ese rol de perfil especificado. En la Figura 1, se muestra un ejemplo de una app que solicita permisos para el perfil del dispositivo COMPANION_DEVICE_WATCH.

Mensaje del diálogo del perfil de dispositivo de reproducción

Figura 1: Diálogo que solicita permisos para el perfil del dispositivo de reloj.

Cuando un usuario borra los datos del paquete en Configuración o quita todos los dispositivos de la app complementaria, CDM revoca el perfil mientras la app no se ejecuta en primer plano ni tiene un servicio en primer plano en ejecución. Si revocas el perfil, también se revocarán todos los permisos definidos para él.

Después de que un usuario acepta la solicitud de una app para otorgar permisos para un perfil de dispositivo en particular, puede revocar los permisos individuales que se otorgaron. Cuando un usuario revoca un permiso, la app permanece asociada con el dispositivo complementario, pero es posible que algunas funciones dejen de estar disponibles. Si el permiso es necesario para que la app funcione, esta debe solicitarlo a través de una solicitud de permiso normal.

Perfiles de dispositivos complementarios para apps de terceros

Ver perfil

El perfil de reloj se introdujo en Android 12.

En la siguiente tabla, se describen los permisos definidos para el perfil de dispositivo COMPANION_DEVICE_WATCH y los requisitos para usarlos.

Permisos Requisitos de la app complementaria y del dispositivo
Notificaciones

POST_NOTIFICATIONS (added in Android 15)
  • Ser un dispositivo conectado a través de Bluetooth o Wi-Fi
  • Tiene una pantalla capaz de mostrar notificaciones (se excluyen los dispositivos que usan tecnología táctil en lugar de una pantalla).
  • Proporciona una experiencia de notificaciones para el usuario, por ejemplo, mostrando notificaciones del teléfono en la pantalla del dispositivo complementario.
  • Publica notificaciones telefónicas para la administración de dispositivos. Por ejemplo, cuando se conecta un reloj o cuando se habilita una función específica.
Phone
  • Ser un dispositivo conectado a través de Bluetooth o Wi-Fi
  • Tiene un micrófono y una bocina integrados que permiten conversaciones por voz.
  • Tiene una pantalla que muestra información de la persona que llama.
  • Proporciona una experiencia de llamada telefónica para el usuario (la app complementaria establece una conexión entre las llamadas telefónicas).
SMS
  • Ser un dispositivo conectado a través de Bluetooth o Wi-Fi
  • Tiene una pantalla que muestra mensajes SMS.
  • Proporciona una experiencia de SMS para el usuario
Contacts
  • Ser un dispositivo conectado a través de Bluetooth o Wi-Fi
  • Tiene una pantalla de visualización
  • Usa la información de contacto como parte de la experiencia de llamadas o mensajes
Calendar
  • Ser un dispositivo conectado a través de Bluetooth o Wi-Fi
  • Tiene una pantalla de visualización
  • Proporciona una experiencia de calendario para el usuario en el reloj
Nearby devices
  • Ser un dispositivo conectado a través de Bluetooth o Wi-Fi
  • Tiene una pantalla.
  • Proporciona una experiencia de vinculación o conexión para el usuario en el reloj
eSIM provisioning
  • Ser un dispositivo conectado a través de Bluetooth o Wi-Fi
  • Tiene una pantalla.
  • Proporcionar una experiencia para el usuario que administre los servicios del suscriptor desde el operador en el reloj
Managing ongoing calls
  • Ser un dispositivo conectado a través de Bluetooth o Wi-Fi
  • Tiene un micrófono y una bocina integrados que permiten conversaciones por voz.
  • Tiene una pantalla que muestra información de la persona que llama.
  • Proporciona una experiencia de llamadas telefónicas al usuario (la aplicación complementaria conecta las llamadas telefónicas).

Perfil de gafas

El perfil de gafas se introdujo en Android 14.

En la siguiente tabla, se describen los permisos definidos para el perfil de dispositivo COMPANION_DEVICE_GLASSES y los requisitos para usarlos.

Permisos Requisitos de la aplicación complementaria y el dispositivo
Notificaciones

POST_NOTIFICATIONS
  • Ser un dispositivo conectado a través de Bluetooth o Wi-Fi
  • Tiene una pantalla capaz de mostrar notificaciones (se excluyen los dispositivos que usan tecnología táctil en lugar de una pantalla).
  • Proporciona una experiencia de notificación para el usuario, por ejemplo, mostrar notificaciones del teléfono en la pantalla del dispositivo complementario.
  • Publica notificaciones de teléfono para la administración de dispositivos, por ejemplo, cuando se conecta un dispositivo de gafas o cuando se habilita una función específica.
Phone
  • Ser un dispositivo conectado a través de Bluetooth o Wi-Fi
  • Tiene un micrófono y una bocina integrados que permiten conversaciones por voz.
  • Tiene una pantalla que muestra información de la persona que llama.
  • Proporciona una experiencia de llamada telefónica para el usuario (la app complementaria establece una conexión entre las llamadas telefónicas).
SMS
  • Ser un dispositivo conectado a través de Bluetooth o Wi-Fi
  • Tiene una pantalla que muestra mensajes SMS.
  • Proporciona una experiencia de SMS para el usuario
Contacts
  • Ser un dispositivo conectado a través de Bluetooth o Wi-Fi
  • Tiene una pantalla de visualización
  • Usa la información de contacto como parte de la experiencia de llamadas o mensajes
Microphone
  • Ser un dispositivo conectado a través de Bluetooth o Wi-Fi
  • Tiene una pantalla.
  • Proporciona una experiencia de micrófono para los lentes
Nearby devices
  • Ser un dispositivo conectado a través de Bluetooth o Wi-Fi
  • Tiene una pantalla de visualización
  • Proporciona una experiencia de vinculación o conexión para el usuario en los lentes.
Managing ongoing calls
  • Ser un dispositivo conectado a través de Bluetooth o Wi-Fi
  • Tiene un micrófono y una bocina integrados que permiten conversaciones por voz.
  • Tiene una pantalla que muestra información de la persona que llama.
  • Proporciona una experiencia de llamada telefónica para el usuario (la app complementaria establece una conexión entre las llamadas telefónicas).

Implementación

Para los desarrolladores externos que implementan una app complementaria que solicita el perfil DEVICE_PROFILE_WATCH, haz lo siguiente:

  1. Llama al método setDeviceProfile.

  2. Pasa un perfil (por ejemplo, DEVICE_PROFILE_WATCH cuando compilas AssociationRequest.

En el caso de los fabricantes de dispositivos que implementan una app complementaria con un dispositivo específico, usa la siguiente configuración del sistema Android obligatoria para certificar la app complementaria, lo que permite que la app omita la visualización del diálogo de consentimiento del usuario.

  1. Recupera el certificado con el siguiente comando:

    keytool  -printcert -jarfile PATH/TO/APK
    
  2. Reemplaza el nombre y el certificado del paquete como se muestra en la siguiente entrada de muestra en el archivo de configuración:

    <!-- A list of packages managing companion device(s) by the same manufacturers as the main device.
    It will not create the association without prompting if the association has been called multiple
    times in a short period. Note that config_companionDeviceManagerPackage and config_companionDeviceCerts
    are parallel arrays. -->
    
    <string-array name="config_companionDevicePackages" translatable="false">
        <item>YOUR_COMPANION_APP_PACKAGE_NAME</item>
    </string-array>
    
    <!-- A list of SHA256 Certificates managing companion device(s) by the same manufacturers as the
    main device. It will fall back to showing a prompt if the association has been called multiple
    times in a short period. Note that config_companionDeviceCerts and config_companionDeviceManagerPackage
    are parallel arrays.
    Example: "1A:2B:3C:4D" -->
    
    <string-array name="config_companionDeviceCerts" translatable="false">
        <item>YOUR_COMPANION_APP_CERTIFICATE</item>
    </string-array>
    
  3. Usa AssociationRequest para realizar una solicitud de asociación a un solo dispositivo complementario.

Validación

Para probar el comportamiento de la función de perfil de dispositivo complementario, usa las pruebas de CTS en cts/tests/tests/companion/.