🚀 6.3 Permissões de Identidade e Segurança
No Android moderno, o acesso às contas do usuário e suas credenciais não é apenas uma questão de declarar permissões no manifesto. O usuário deve conceder acesso explicitamente para garantir sua privacidade e segurança.
Permissões no Manifesto (AndroidManifest.xml)
Para que o BoaViagem consiga listar as contas do Google disponíveis no aparelho, precisamos das permissões:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />O Desafio das Permissões em Tempo de Execução
CAUTION
Dangerous Permissions: A permissão
GET_ACCOUNTSé considerada de “nível perigoso” (Dangerous). Se o seu app não solicitar essa permissão em tempo de execução, ele não conseguirá ver nenhuma conta do Google no dispositivo, causando falhas na autenticação.
Implementando a Verificação (Java 17)
private void verificarPermissoesIdentidade() {
if (ContextCompat.checkSelfPermission(this, GET_ACCOUNTS) == GRANTED) {
// Já tem permissão, pode seguir para a escolha da conta
escolherContaGoogle();
} else {
// Solicita permissão usando o ActivityResultLauncher (visto no Módulo 5)
requestAccountsPermissionLauncher.launch(GET_ACCOUNTS);
}
}A Era do Credential Manager (Premium)
Embora o gerenciamento manual de contas (AccountManager) ainda funcione, a Engenharia Premium atual utiliza o Credential Manager. Esse novo componente centraliza senhas, chaves de acesso (Passkeys) e o Google Sign-In em uma única interface segura e simplificada para o desenvolvedor.
IMPORTANT
Privacidade Total: O Android desencoraja o acesso direto a todos os e-mails do usuário. Se você só precisa de um login, o Google Sign-In já fornece as permissões necessárias sem que você precise pedir a
GET_ACCOUNTSseparadamente.
TIP
Em ambientes de teste (Emuladores), certifique-se de que a conta do Google foi adicionada em Configurações > Contas, caso contrário o sistema não terá dados de identidade para fornecer ao seu aplicativo.