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

Posted

技术标签:

【中文标题】如何在 Android 上获取 google 用户名?【英文标题】:How can I get the google username on Android? 【发布时间】:2011-02-13 04:44:16 【问题描述】:

我看到过使用 AccountManager 的参考资料,例如 Accessing Google Account Id /username via android。不过好像是为了抢authtoken

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

我正在使用 android 2.1 sdk。

【问题讨论】:

在这里查看我的回复:***.com/questions/2112965 【参考方案1】:

正如 cmets 中所述,Roman 对How to get the Android device's primary e-mail address 的回答解决了这个问题。 这是我使用的代码,它也会从电子邮件中删除用户名。

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;

【讨论】:

只想指出,如果用户有多个帐户,这将不起作用,如果他们不使用 GMail,则可能不起作用。我有多达 3 个 Google 帐户,一个是我的个人帐户,一个用于工作,一个是 Google 在我激活手机时强制我注册的 GMail,但后来我通过桌面浏览器删除了这些帐户。 @Chloe 如何选择其中一个 Google 帐户并保存? 我可以使用 oauth2 发送邮件,但有时它无法正常工作。如何确认邮件已通过 Gmail 使用此令牌成功发送。因为如果不是邮件,我可以选择发送短信 这应该始终至少有一个帐户,以便所有 Google 应用程序都可以运行。它可能不会,但它将是 Android 设备的一个边缘案例。但请注意,由于多种原因,它可能不是 gmail 地址。

以上是关于如何在 Android 上获取 google 用户名?的主要内容,如果未能解决你的问题,请参考以下文章