19

我已经看到使用AccountManager类似Accessing Google Account Id /username via Android的引用。但是好像是为了抢authtoken

我只需要访问用户名,没有密码或任何身份验证令牌。

我正在使用 android 2.1 sdk。如何在 Android 上获取 google 用户名?

4

1 回答 1

46

正如评论中提到的,罗马对如何获取 Android 设备的主电子邮件地址的回答解决了这个问题。这是我使用的代码,它也会从电子邮件中删除用户名。

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;
}
于 2010-04-30T00:51:36.310 回答