Aplicação pega e-mail logado da google

3 respostas Resolvido
R

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!!

3 Respostas

D

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(<a href="http://account.name">account.name</a>).matches()) {

String possibleEmail = <a href="http://account.name">account.name</a>;

…

}

}

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

R

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.

D
Solucao aceita

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.

Criado 7 de janeiro de 2016
Ultima resposta 7 de jan. de 2016
Respostas 3
Participantes 2