如何在Android上获取Google用户名?

tom*_*eng 18 android username

我已经看到过使用AccountManager的提法,例如通过Android访问Google帐户ID /用户名,但它似乎是为了抓住authtoken?

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

我正在使用android 2.1 sdk.

tom*_*eng 46

正如评论中所提到的,Roman对如何获取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;
}
Run Code Online (Sandbox Code Playgroud)

  • 只是想指出,如果用户有多个帐户,这将无效,如果他们不使用GMail,可能无法工作.我有多达3个Google帐户,我的个人帐户,一个工作帐户,以及Google强制我在启动手机时注册的一个GMail,但随后我通过桌面浏览器删除了该帐户. (2认同)