Perfis de dispositivos complementares

O perfil do dispositivo complementar, introduzido no Android 12, é um recurso que permite que aplicativos complementares solicitem um conjunto de permissões específicas para o tipo de dispositivo complementar, por exemplo, um smartwatch. O uso de um perfil de dispositivo complementar simplifica o processo de registro, permitindo que os aplicativos exibam um único aviso aos usuários em seus dispositivos móveis para solicitar um conjunto definido de permissões, em vez de vários avisos solicitando permissões individualmente. Isso pode permitir uma experiência de configuração mais simplificada e melhores taxas de aceitação para aplicativos complementares.

O uso de perfis de dispositivos complementares está disponível apenas para fabricantes de dispositivos que possuem dispositivos complementares. Para que os dispositivos complementares tenham acesso ao recurso, eles devem atender aos requisitos e ser aprovados.

Os seguintes tipos de perfis de dispositivos complementares estão disponíveis no Android 12: COMPANION_DEVICE_WATCH .

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

Comportamento do dispositivo

Esta seção descreve o comportamento do dispositivo quando perfis de dispositivos complementares são usados.

Quando um usuário aceita a solicitação de um aplicativo para criar uma associação com um dispositivo complementar, o serviço CompanionDeviceManager (CDM) aguarda a conexão do dispositivo complementar e, quando ele se conecta, o CDM atribui a função de perfil do dispositivo (por exemplo, assistir) ao aplicativo complementar, concedendo todas as permissões definidas para essa função de perfil especificada. A Figura 1 mostra um exemplo de aplicativo solicitando permissões para o perfil de dispositivo COMPANION_DEVICE_WATCH .

Assistir ao prompt da caixa de diálogo do perfil do dispositivo

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

Quando a associação entre um aplicativo e o dispositivo complementar é removida, por exemplo, quando os dados de um pacote são apagados ou quando um dispositivo é esquecido, o CDM revoga a função de perfil do dispositivo para o aplicativo, o que remove todas as permissões definidas para a função de perfil do aplicativo.

Depois que um usuário aceitar a solicitação de um aplicativo para conceder permissões para um perfil de dispositivo específico, o usuário poderá revogar as permissões individuais que foram concedidas. Quando uma permissão é revogada por um usuário, o aplicativo permanece associado ao dispositivo complementar, mas alguns recursos podem ficar indisponíveis. Se a permissão for necessária para o funcionamento do aplicativo, o aplicativo deverá solicitá-la por meio de uma solicitação de permissão normal .

Requisitos

Para que um aplicativo complementar obtenha acesso à API de perfil de dispositivo complementar, o aplicativo deve atender aos seguintes requisitos:

  • Tenha um dispositivo complementar (por exemplo, um smartwatch).
  • Ter um motivo legítimo para exigir as permissões definidas para o perfil do dispositivo complementar.

Observe os requisitos do perfil do dispositivo complementar

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

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

BIND_NOTIFICATION_LISTENER_SERVICE
  • Ser um dispositivo conectado usando Bluetooth e/ou Wi-Fi
  • Possui uma tela capaz de exibir notificações (excluem-se dispositivos que usam sensação tátil em vez de tela)
  • Fornece uma experiência de notificação voltada para o usuário, por exemplo, exibindo notificações de telefone na tela do dispositivo complementar
Telefone

phone
  • Ser um dispositivo conectado usando Bluetooth e/ou Wi-Fi
  • Possui um microfone e alto-falante integrados que permitem conversação por voz
  • Possui uma tela que exibe informações do chamador
  • Fornece uma experiência de chamada telefônica voltada para o usuário (o aplicativo complementar faz a ponte entre as chamadas telefônicas)
SMS

sms
  • Ser um dispositivo conectado usando Bluetooth e/ou Wi-Fi
  • Possui uma tela que exibe mensagens SMS
  • Forneça uma experiência de SMS voltada para o usuário
Contatos

contacts
  • Ser um dispositivo conectado usando Bluetooth e/ou Wi-Fi
  • Tem uma tela de exibição
  • Usa informações de contato como parte da experiência de chamadas ou mensagens
Calendário

calendar
  • Ser um dispositivo conectado usando Bluetooth e/ou Wi-Fi
  • Tem uma tela de exibição
  • Forneça uma experiência de calendário voltada para o usuário no relógio
Dispositivos próximos

nearby_devices
  • Ser um dispositivo conectado usando Bluetooth e/ou Wi-Fi
  • Tem uma tela de exibição
  • Fornece uma experiência de emparelhamento/conexão voltada para o usuário no relógio
Provisionamento de eSIM

USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER
  • Ser um dispositivo conectado usando Bluetooth e/ou Wi-Fi
  • Tem uma tela de exibição
  • Fornece uma experiência voltada ao usuário que gerencia os serviços do assinante da operadora no relógio
Gerenciando chamadas em andamento

MANAGE_ONGOING_CALLS
  • Ser um dispositivo conectado usando Bluetooth e/ou Wi-Fi
  • Possui um microfone e alto-falante integrados que permitem conversação por voz
  • Possui uma tela que exibe informações do chamador
  • Fornece uma experiência de chamada telefônica voltada para o usuário (o aplicativo complementar faz a ponte entre as chamadas telefônicas)

Obtendo acesso

Para que os aplicativos obtenham acesso aos perfis de dispositivos complementares, eles devem ser aprovados e adicionados a uma lista de permissões. Quando uma solicitação de adição à lista de permissões é recebida, a equipe do Android analisa o aplicativo para garantir que ele atenda aos requisitos do perfil de dispositivo complementar correspondente.

Implementação

Para fabricantes de dispositivos que implementam um aplicativo complementar com um dispositivo específico, use as seguintes configurações obrigatórias do sistema Android para certificar o aplicativo complementar, o que permite que o aplicativo ignore a exibição do prompt do CDM para os usuários.

  1. Recupere o certificado usando o seguinte comando:

    keytool  -printcert -jarfile PATH/TO/APK
    
  2. Substitua o nome do pacote e o certificado conforme mostrado no exemplo de entrada a seguir 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.

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

  1. Chame o método setDeviceProfile .
  2. Passe o perfil DEVICE_PROFILE_WATCH ao criar AssociationRequest .

Validação

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

,

O perfil do dispositivo complementar, introduzido no Android 12, é um recurso que permite que aplicativos complementares solicitem um conjunto de permissões específicas para o tipo de dispositivo complementar, por exemplo, um smartwatch. O uso de um perfil de dispositivo complementar simplifica o processo de registro, permitindo que os aplicativos exibam um único aviso aos usuários em seus dispositivos móveis para solicitar um conjunto definido de permissões, em vez de vários avisos solicitando permissões individualmente. Isso pode permitir uma experiência de configuração mais simplificada e melhores taxas de aceitação para aplicativos complementares.

O uso de perfis de dispositivos complementares está disponível apenas para fabricantes de dispositivos que possuem dispositivos complementares. Para que os dispositivos complementares tenham acesso ao recurso, eles devem atender aos requisitos e ser aprovados.

Os seguintes tipos de perfis de dispositivos complementares estão disponíveis no Android 12: COMPANION_DEVICE_WATCH .

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

Comportamento do dispositivo

Esta seção descreve o comportamento do dispositivo quando perfis de dispositivos complementares são usados.

Quando um usuário aceita a solicitação de um aplicativo para criar uma associação com um dispositivo complementar, o serviço CompanionDeviceManager (CDM) aguarda a conexão do dispositivo complementar e, quando ele se conecta, o CDM atribui a função de perfil do dispositivo (por exemplo, assistir) ao aplicativo complementar, concedendo todas as permissões definidas para essa função de perfil especificada. A Figura 1 mostra um exemplo de aplicativo solicitando permissões para o perfil de dispositivo COMPANION_DEVICE_WATCH .

Assistir ao prompt da caixa de diálogo do perfil do dispositivo

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

Quando a associação entre um aplicativo e o dispositivo complementar é removida, por exemplo, quando os dados de um pacote são apagados ou quando um dispositivo é esquecido, o CDM revoga a função de perfil do dispositivo para o aplicativo, o que remove todas as permissões definidas para a função de perfil do aplicativo.

Depois que um usuário aceitar a solicitação de um aplicativo para conceder permissões para um perfil de dispositivo específico, o usuário poderá revogar as permissões individuais que foram concedidas. Quando uma permissão é revogada por um usuário, o aplicativo permanece associado ao dispositivo complementar, mas alguns recursos podem ficar indisponíveis. Se a permissão for necessária para o funcionamento do aplicativo, o aplicativo deverá solicitá-la por meio de uma solicitação de permissão normal .

Requisitos

Para que um aplicativo complementar obtenha acesso à API de perfil de dispositivo complementar, o aplicativo deve atender aos seguintes requisitos:

  • Tenha um dispositivo complementar (por exemplo, um smartwatch).
  • Ter um motivo legítimo para exigir as permissões definidas para o perfil do dispositivo complementar.

Observe os requisitos do perfil do dispositivo complementar

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

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

BIND_NOTIFICATION_LISTENER_SERVICE
  • Ser um dispositivo conectado usando Bluetooth e/ou Wi-Fi
  • Possui uma tela capaz de exibir notificações (excluem-se dispositivos que usam sensação tátil em vez de tela)
  • Fornece uma experiência de notificação voltada para o usuário, por exemplo, exibindo notificações de telefone na tela do dispositivo complementar
Telefone

phone
  • Ser um dispositivo conectado usando Bluetooth e/ou Wi-Fi
  • Possui um microfone e alto-falante integrados que permitem conversação por voz
  • Possui uma tela que exibe informações do chamador
  • Fornece uma experiência de chamada telefônica voltada para o usuário (o aplicativo complementar faz a ponte entre as chamadas telefônicas)
SMS

sms
  • Ser um dispositivo conectado usando Bluetooth e/ou Wi-Fi
  • Possui uma tela que exibe mensagens SMS
  • Forneça uma experiência de SMS voltada para o usuário
Contatos

contacts
  • Ser um dispositivo conectado usando Bluetooth e/ou Wi-Fi
  • Tem uma tela de exibição
  • Usa informações de contato como parte da experiência de chamadas ou mensagens
Calendário

calendar
  • Ser um dispositivo conectado usando Bluetooth e/ou Wi-Fi
  • Tem uma tela de exibição
  • Forneça uma experiência de calendário voltada para o usuário no relógio
Dispositivos próximos

nearby_devices
  • Ser um dispositivo conectado usando Bluetooth e/ou Wi-Fi
  • Tem uma tela de exibição
  • Fornece uma experiência de emparelhamento/conexão voltada para o usuário no relógio
Provisionamento de eSIM

USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER
  • Ser um dispositivo conectado usando Bluetooth e/ou Wi-Fi
  • Tem uma tela de exibição
  • Fornece uma experiência voltada ao usuário que gerencia os serviços do assinante da operadora no relógio
Gerenciando chamadas em andamento

MANAGE_ONGOING_CALLS
  • Ser um dispositivo conectado usando Bluetooth e/ou Wi-Fi
  • Possui um microfone e alto-falante integrados que permitem conversação por voz
  • Possui uma tela que exibe informações do chamador
  • Fornece uma experiência de chamada telefônica voltada para o usuário (o aplicativo complementar faz a ponte entre as chamadas telefônicas)

Obtendo acesso

Para que os aplicativos obtenham acesso aos perfis de dispositivos complementares, eles devem ser aprovados e adicionados a uma lista de permissões. Quando uma solicitação de adição à lista de permissões é recebida, a equipe do Android analisa o aplicativo para garantir que ele atenda aos requisitos do perfil de dispositivo complementar correspondente.

Implementação

Para fabricantes de dispositivos que implementam um aplicativo complementar com um dispositivo específico, use as seguintes configurações obrigatórias do sistema Android para certificar o aplicativo complementar, o que permite que o aplicativo ignore a exibição do prompt do CDM para os usuários.

  1. Recupere o certificado usando o seguinte comando:

    keytool  -printcert -jarfile PATH/TO/APK
    
  2. Substitua o nome do pacote e o certificado conforme mostrado no exemplo de entrada a seguir 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.

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

  1. Chame o método setDeviceProfile .
  2. Passe o perfil DEVICE_PROFILE_WATCH ao criar AssociationRequest .

Validação

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