2010-04-28 9 views

Respuesta

45

Como se menciona en los comentarios, la respuesta de Roman a How to get the Android device's primary e-mail address lo resuelve. Aquí está el código que utilicé que también eliminará el nombre de usuario del correo electrónico.

public String getUsername() { 
    AccountManager manager = AccountManager.get(this); 
    Account[] accounts = manager.getAccountsByType("com.google"); 
    List<String> possibleEmails = new LinkedList<String>(); 

    for (Account account : accounts) { 
     // TODO: Check possibleEmail against an email regex or treat 
     // account.name as an email address only for certain account.type values. 
     possibleEmails.add(account.name); 
    } 

    if (!possibleEmails.isEmpty() && possibleEmails.get(0) != null) { 
     String email = possibleEmails.get(0); 
     String[] parts = email.split("@"); 

     if (parts.length > 1) 
      return parts[0]; 
    } 
    return null; 
} 
+2

Sólo quiero señalar que esto no funcionará si el usuario tiene varias cuentas, y probablemente no va a funcionar si don No use GMail. He tenido hasta 3 cuentas de Google, una de mi personal, otra de trabajo y una de GMail, que Google me obligó a registrar cuando activé mi teléfono, pero que luego eliminé a través de mi navegador de escritorio. – Chloe

+0

@Chloe ¿Cómo seleccionar una de las cuentas de Google y guardarla? – Zyoo

+0

Puedo enviar correo usando oauth2 y algunas veces no funciona ... cómo obtener un reconocimiento de que el correo se envía exitosamente usando este token con Gmail ... porque si no es por correo tengo una opción para enviar sms –

Cuestiones relacionadas