Aplicação pega e-mail logado da google

Isso mesmo da pergunta.

Minha aplicação, no módulo de cadastro, deve pegar e-mail da conta logada pelo usuário no android e setar no campo correspondente, claro se o usuário estiver logado.
Isso é através de Intents?

Desde já, brigadão!!

Você pode usar o AccountManager.
Ele te fornece algumas infomações da conta do usuário, entre elas a liata de emails cadastrados no dispositivo.

Pattern emailPattern = Patterns.EMAIL_ADDRESS;
Account[] accounts = AccountManager.get(context).getAccounts();
for (Account account : accounts) {
if (emailPattern.matcher(account.name).matches()) {
String possibleEmail = account.name;

}
}

Será necessário adicionar a permissão GET_ACCOUNTS.

1 curtida

Irado mano. Mas teria como filtrar para somente a conta que ele ta logado no sistema (da google)?
Dessa forma ta listando todas as contas. Beleza que poderia pegar somente com o domínio gmail, mas se o cara estiver com duas contas no app do Gmail, esse código pega os dois e-mails.

o usuário pode ter mais de uma conta logada, então realmente você terá que filtrar esse resultado para utilizar conforme sua necessidade.

No seu caso que é um cadastro você pode verificar se existe somente um resultado e já setar esse email no campo correspondente ou se houver vários resultados de email você pode optar por criar um autocomplete no eu inputText onde conforme o usuário vai digitando as opções dos email que ele possui vão sendo apresentadas.

1 curtida