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

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

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

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

【问题讨论】:

标签: android google-account


【解决方案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 地址。
猜你喜欢
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-15
相关资源
最近更新 更多