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.
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 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 smartphones solicita várias permissões ao mesmo tempo
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.
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).
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 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.
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.
Recomendados para você
- Observação: o texto do link aparece quando o JavaScript está desativado.
- Solicitar permissões de execução
- Permissões do Bluetooth
- Comunicar em segundo plano