Perfis de dispositivos complementares

O perfil de dispositivo complementar, introduzido no Android 12, é um recurso que permite que apps complementares solicitem um conjunto de permissões específicas para o tipo de dispositivo complementar, como um smartwatch. O uso de um perfil de dispositivo complementar simplifica o processo de registro, permitindo que os apps mostrem uma única solicitação aos usuários em dispositivos móveis para solicitar um conjunto definido de permissões em vez de várias solicitações individuais. Isso pode permitir uma experiência de configuração mais simplificada e taxas de ativação melhores para apps complementares.

Para usar perfis de dispositivos complementares, os apps complementares precisam atender aos seguintes requisitos:

  • Gerenciar um dispositivo complementar (por exemplo, um smartwatch).
  • Ter recursos do app ou chamar APIs do Android que exigem todas as permissões definidas para o perfil do dispositivo complementar.

Cada perfil de dispositivo complementar corresponde a uma função do Android. Para mais informações sobre as permissões e a função do Android correspondente de cada perfil, consulte Perfis de dispositivos complementares para apps de terceiros.

Para mais informações sobre dispositivos complementares, consulte Pareamento de dispositivos complementares.

Comportamento do dispositivo

Esta seção descreve o comportamento do dispositivo quando os perfis de dispositivo complementar são usados.

Quando um usuário aceita a solicitação de um app para criar uma associação com um dispositivo companion, o serviço CompanionDeviceManager (CDM) atribui o papel do perfil do dispositivo (por exemplo, relógio) ao app companion, concedendo todas as permissões definidas para esse papel de perfil especificado. A Figura 1 mostra um exemplo de app que solicita permissões para o perfil de dispositivo COMPANION_DEVICE_WATCH.

Solicitação de caixa de diálogo do perfil do dispositivo de relógio

Figura 1. Caixa de diálogo solicitando permissões para o perfil do dispositivo do relógio.

Quando um usuário limpa os dados do pacote nas Configurações ou remove todos os dispositivos no app complementar, o CDM revoga o perfil enquanto o app não está em execução em primeiro plano nem tem um serviço em primeiro plano em execução. A revogação do perfil também revoga todas as permissões definidas para ele.

Depois que o usuário aceita a solicitação de um app para conceder permissões a um perfil de dispositivo específico, ele pode revogar as permissões individuais concedidas. Quando uma permissão é revogada por um usuário, o app permanece associado ao dispositivo complementar, mas alguns recursos podem ficar indisponíveis. Se a permissão for necessária para o funcionamento do app, ele precisará solicitar a permissão usando uma solicitação de permissão normal.

Perfis de dispositivos complementares para apps de terceiros

Perfil do YouTube

O perfil do relógio foi introduzido no Android 12.

A tabela abaixo descreve as permissões definidas para o perfil de dispositivo COMPANION_DEVICE_WATCH e os requisitos para usá-las.

Permissões Requisitos do app complementar e do dispositivo
Notificações

POST_NOTIFICATIONS (added in Android 15)
  • Ser um dispositivo conectado usando Bluetooth e/ou Wi-Fi
  • Tem uma tela capaz de exibir notificações (dispositivos que usam retorno tátil em vez de uma tela são excluídos)
  • Oferece uma experiência de notificação voltada ao usuário, por exemplo, exibindo notificações do smartphone na tela do dispositivo complementar.
  • Postar notificações do smartphone para gerenciamento de dispositivos. Por exemplo, quando um relógio está conectado ou quando um recurso específico está ativado.
Phone
  • Ser um dispositivo conectado usando Bluetooth e/ou Wi-Fi
  • Tem um microfone e alto-falante integrados que permitem a conversa por voz
  • Tem uma tela que mostra as informações do autor da chamada
  • Oferece uma experiência de chamada telefônica voltada ao usuário (o app complementar faz a ponte entre as chamadas telefônicas)
SMS
  • Estar conectado a um dispositivo via Bluetooth e/ou Wi-Fi.
  • Tem uma tela que mostra mensagens SMS
  • Oferecer uma experiência de SMS voltada para o usuário
Contacts
  • Estar conectado a um dispositivo via Bluetooth e/ou Wi-Fi.
  • Tem uma tela
  • Usa as informações de contato como parte da experiência de chamadas ou mensagens
Calendar
  • Ser um dispositivo conectado usando Bluetooth e/ou Wi-Fi
  • Tem uma tela
  • Oferecer uma experiência de agenda voltada ao usuário no relógio
Nearby devices
  • Ser um dispositivo conectado usando Bluetooth e/ou Wi-Fi
  • Tem uma tela
  • Oferecer uma experiência de pareamento/conexão voltada ao usuário no relógio
eSIM provisioning
  • Ser um dispositivo conectado usando Bluetooth e/ou Wi-Fi
  • Tem uma tela
  • Oferecer uma experiência voltada ao usuário que gerencia os serviços do assinante da operadora no relógio
Managing ongoing calls
  • Estar conectado a um dispositivo via Bluetooth e/ou Wi-Fi.
  • Tem um microfone e alto-falante integrados que permitem a conversa por voz
  • Tem uma tela que mostra as informações do autor da chamada
  • Oferece uma experiência de chamada telefônica voltada ao usuário (o app complementar faz a ponte entre as chamadas telefônicas)

Perfil de óculos

O perfil de óculos foi lançado no Android 14.

A tabela a seguir descreve as permissões definidas para o perfil de dispositivo COMPANION_DEVICE_GLASSES e os requisitos para usá-las.

Permissões Requisitos do app complementar e do dispositivo
Notificações

POST_NOTIFICATIONS
  • Estar conectado a um dispositivo via Bluetooth e/ou Wi-Fi.
  • Tem uma tela capaz de exibir notificações (dispositivos que usam retorno tátil em vez de uma tela são excluídos)
  • Oferece uma experiência de notificação voltada ao usuário, por exemplo, exibindo notificações do smartphone na tela do dispositivo complementar.
  • Publica notificações no celular para gerenciamento do dispositivo, por exemplo, quando um dispositivo de óculos está conectado ou quando um recurso específico é ativado.
Phone
  • Estar conectado a um dispositivo via Bluetooth e/ou Wi-Fi.
  • Tem um microfone e alto-falante integrados que permitem a conversa por voz
  • Tem uma tela que mostra as informações do autor da chamada
  • Oferece uma experiência de chamada telefônica voltada ao usuário (o app complementar faz a ponte entre as chamadas telefônicas)
SMS
  • Estar conectado a um dispositivo via Bluetooth e/ou Wi-Fi.
  • Tem uma tela que mostra mensagens SMS
  • Oferecer uma experiência de SMS voltada para o usuário
Contacts
  • Estar conectado a um dispositivo via Bluetooth e/ou Wi-Fi.
  • Tem uma tela
  • Usa as informações de contato como parte da experiência de chamadas ou mensagens
Microphone
  • Ser um dispositivo conectado usando Bluetooth e/ou Wi-Fi
  • Tem uma tela
  • Oferece uma experiência de microfone voltada para o usuário nos óculos
Nearby devices
  • Estar conectado a um dispositivo via Bluetooth e/ou Wi-Fi.
  • Tem uma tela de display
  • Oferece uma experiência de pareamento/conexão para o usuário nos óculos
Managing ongoing calls
  • Estar conectado a um dispositivo via Bluetooth e/ou Wi-Fi.
  • Tem um microfone e alto-falante integrados que permitem a conversa por voz
  • Tem uma tela que mostra as informações do autor da chamada
  • Proporciona uma experiência de chamada telefônica voltada ao usuário (o app complementar faz a ponte entre as chamadas).

Implementação

Para desenvolvedores terceirizados que implementam um app complementar que solicita o perfil DEVICE_PROFILE_WATCH, faça o seguinte:

  1. Chamando o método setDeviceProfile.

  2. Transmita um perfil (por exemplo, DEVICE_PROFILE_WATCH ao criar AssociationRequest.

Para fabricantes de dispositivos que implementam um app complementar com um dispositivo específico, use as seguintes configurações do sistema Android necessárias para certificar o app complementar, o que permite que ele pule a caixa de diálogo de consentimento do usuário.

  1. Extraia o certificado usando o seguinte comando:

    keytool  -printcert -jarfile PATH/TO/APK
    
  2. Substitua o nome do pacote e o certificado, conforme mostrado na seguinte entrada de exemplo no arquivo de configuração:

    <!-- 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. Use AssociationRequest para fazer uma solicitação de associação a um único dispositivo complementar.

Validação

Para testar o comportamento do recurso de perfil de dispositivo complementar, use os testes do CTS em cts/tests/tests/companion/.