Request permissions on Wear OS

keywords: wear, permissions, collection_guideslandingwear image_path: images/training/wear/multiple_permissions.png

A solicitação de permissões no Wear OS é parecida com a de dispositivos móveis, com alguns outros casos de uso Este guia pressupõe que você sabe como as permissões do Android funcionam. Caso contrário, leia este artigo.

Assim como acontece em dispositivos móveis, os apps para Wear exigem a permissão do usuário para acessar algumas funcionalidades, mas também precisam oferecer funcionalidades úteis que não precisem de permissões.

Cenários de permissões

Há vários cenários que você pode encontrar ao solicitar permissões perigosas no Wear OS:

  • O app para Wear solicita permissões para um app executado no dispositivo wearable.

  • O app para Wear solicita permissões para um app executado no smartphone.

  • O app para smartphones solicita permissões para um app executado no dispositivo wearable.

  • O app para smartphones solicita várias permissões que só podem ser usadas enquanto o dispositivo wearable estiver conectado.

Para conferir todos esses cenários em um app real, consulte o exemplo ExcersizeSampleCompose no GitHub.

As seções abaixo explicam cada um desses cenários. Para informações mais detalhadas sobre como solicitar permissões, consulte a seção Padrões de solicitação de permissões.

O app para Wear solicita uma permissão em um wearable

Quando o app para Wear solicita uma permissão para um app executado em um dispositivo wearable, o sistema mostra uma caixa de diálogo para solicitar essa permissão do usuário. Só solicite permissões quando estiver claro para o usuário por que elas são necessárias para executar uma determinada operação.

Consulte os princípios de permissões para garantir que você esteja oferecendo a melhor experiência aos usuários e não esqueça de verificar shouldShowRequestPermissionRationale() e fornecer outras informações, se necessário.

Se um app ou mostrador do relógio exigir mais de uma permissão por vez, as solicitações vão ser mostradas uma após a outra.

Várias telas de permissão consecutivas.
Figura 1. Telas de permissão aparecendo uma após a outra.

O app para Wear solicita uma permissão ao smartphone

Quando o app para Wear solicita uma permissão em um smartphone, (por exemplo, um app para wearables quer acessar fotos ou outros dados sensíveis na versão para dispositivos móveis), é necessário direcionar o usuário ao smartphone para aceitar a permissão. No smartphone, é possível fornecer mais informações ao usuário com uma atividade. Inclua dois botões nessa atividade: um para aceitar e outro para negar a permissão.

O app para Wear direciona o usuário ao smartphone para que ele conceda a permissão.
Figura 2. Direcionamento do usuário ao smartphone para que ele conceda a permissão.

O app para smartphones solicita uma permissão do wearable

Se o usuário estiver usando um app para smartphones que solicita uma permissão para o wearable (por exemplo, para pré-carregar música no caso do smartphone ser desconectado), esse app precisa direcionar o usuário ao dispositivo wearable para aceitar a permissão. A versão para wearables do app usa o método requestPermissions() para acionar a caixa de diálogo de permissões do sistema.

O app para smartphone direciona o usuário ao wearable para que ele conceda a permissão.
Figura 3. Direcionamento do usuário ao wearable para que ele conceda a permissão.

O app para smartphones solicita várias permissões ao mesmo tempo

Figura 4. Caixa de diálogo de permissões que usa um perfil de dispositivo complementar para solicitar várias permissões em uma única solicitação.

Apps parceiros no Android 12 (nível 31 da API) e versões mais recentes podem usar perfis de dispositivos complementares ao se conectar a um relógio. O uso de um perfil simplifica o processo de registro, agrupando a concessão de um conjunto de permissões específicas do tipo de dispositivo em uma única etapa.

As permissões do pacote são concedidas ao app complementar quando o dispositivo é conectado e duram apenas enquanto o dispositivo estiver associado. Excluir o app ou remover a associação vai remover as permissões. Para mais detalhes, consulte AssociationRequest.Builder.setDeviceProfile().

Padrões de solicitação de permissão

Há diferentes padrões para solicitar permissões dos usuários. Confira a ordem de prioridade deles abaixo:

  • Solicitar no contexto de uso quando a permissão é claramente necessária para um recurso específico, mas não para a execução do app.

  • Fornecer informações no contexto de uso quando o motivo para solicitar a permissão não é óbvio e a permissão não é necessária para a execução do app.

Vamos explicar esses padrões nas próximas seções.

Solicitar em contexto

Só solicite permissões quando estiver claro para o usuário por que elas são necessárias para executar uma determinada operação. É mais provável que os usuários concedam uma permissão quando entenderem a relação dela com o recurso que eles querem usar.

Por exemplo, um app pode precisar de acesso à localização para mostrar lugares de interesse do usuário nas proximidades. Quando o usuário toca na pesquisa de lugares por perto, o app pode solicitar a permissão de localização imediatamente, porque há uma relação clara entre procurar lugares por perto e precisar da permissão de localização. A obviedade dessa relação elimina a necessidade do app mostrar mais telas informativas.

O app solicita a permissão quando ela é obviamente necessária.
Figura 5. Solicitação de uma permissão em contexto.

Informar em contexto

A figura 6 mostra um exemplo de informações em contexto. O app não precisa de permissões para iniciar o timer, mas um sinal informativo mostra que parte da atividade (detecção de localização) está bloqueada. Quando o usuário toca na dica, uma tela de solicitação de permissão aparece, permitindo que o usuário desbloqueie a detecção de localização.

Use o método shouldShowRequestPermissionRationale() para ajudar seu app a decidir se precisa fornecer mais informações. Para mais informações, consulte Solicitar permissões do app. Além disso, você pode analisar como o app de exemplo de alto-falante no GitHub mostra informações (link em inglês).

Quando a necessidade da permissão surgir, o app vai explicar o motivo.
Figura 6. Informar em contexto.

Processar rejeições

Se um usuário negar uma permissão solicitada que não seja essencial para a atividade pretendida, não o impeça de continuar a atividade. Se algumas partes da atividade forem desativadas pela permissão negada, forneça um feedback visual e interativo.

A Figura 7 mostra o uso de um ícone de cadeado para indicar que um recurso está bloqueado, porque o usuário não concedeu a permissão necessária.

Quando o usuário negar a permissão, um ícone de cadeado vai ser mostrado ao lado do recurso associado.
Figura 7. Ícone de cadeado mostrando que um recurso está bloqueado devido a uma permissão negada.

Quando a caixa de diálogo de uma permissão de wearable anteriormente negada aparecer uma segunda vez, ela vai incluir a opção Negar, não mostrar novamente. Se o usuário selecionar essa opção, a única maneira de conceder a permissão no futuro é pelo app Configurações do wearable.

O sistema oferece parar de solicitar a permissão.
Figura 8. O usuário pode acessar uma solicitação de permissão que foi negada duas vezes nas Configurações.

Saiba mais sobre como processar a rejeição de uma permissão.

Permissões para serviços

Apenas atividades podem chamar o método requestPermissions(). Se o usuário interagir com o app usando um serviço, por exemplo, um mostrador do relógio, o serviço vai precisar abrir uma atividade antes de solicitar a permissão. Forneça mais informações sobre por que a permissão é necessária nessa atividade.

De modo geral, não solicite permissões para um mostrador do relógio. Em vez disso, implemente uma complicação e permita que o usuário escolha quais dados vão ser mostrados nela.

Configurações

Um usuário pode mudar as permissões de um app para Wear nas "Configurações" quando quiser. Quando o usuário tenta fazer algo que exige uma permissão, chame o método checkSelfPermission() primeiro para verificar se o app já tem essa permissão.

Faça essa verificação mesmo que o usuário já tenha concedido a permissão anteriormente, porque ela pode ter sido revogada.

O usuário pode alterar permissões pelo app Configurações.
Figura 9. O usuário pode mudar as permissões pelo app Configurações.