2010-04-28 15 views

risposta

45

Come menzionato nei commenti, la risposta di Roman a How to get the Android device's primary e-mail address lo risolve. Ecco il codice che ho usato che rimuoverà anche il nome utente dall'email.

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

Voglio solo far notare che questo non funzionerà se l'utente dispone di più account, e probabilmente non funzionerà se don Usiamo GMail. Ho avuto fino a 3 account Google, i miei personali, uno per lavoro e un GMail che Google mi ha obbligato a registrare quando ho attivato il mio telefono, ma che successivamente ho eliminato tramite il browser desktop. – Chloe

+0

@Chloe Come selezionare uno degli account Google e salvarlo? – Zyoo

+0

Posso inviare posta usando oauth2 ea volte non funziona .. come ottenere un riconoscimento che la posta viene inviata con successo usando questo token con Gmail..perché se non ho la posta ho un'opzione per inviare sms –

Problemi correlati