views:

223

answers:

1

I've seen references to using the AccountManager like http://stackoverflow.com/questions/2245545/accessing-google-account-id-username-via-android but it seems like it's for grabbing the authtoken?

I just need access to the username, no passwords or any auth tokens.

I'm using android 2.1 sdk.

A: 

As mentioned in the comments, Roman's answer to http://stackoverflow.com/questions/2112965 solves it. Here's the code i used that will also strip out the username from the 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 > 0 && parts[0] != null)
            return parts[0];
        else
            return null;
    }else
        return null;
}
tommy chheng