代码之家  ›  专栏  ›  技术社区  ›  tommy chheng

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

  •  17
  • tommy chheng  · 技术社区  · 15 年前

    我见过使用accountmanager的例子,比如 Accessing Google Account Id /username via Android 但似乎是为了抓到authToken?

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

    我正在使用android 2.1sdk。

    1 回复  |  直到 10 年前
        1
  •  46
  •   Community CDub    8 年前

    正如评论中提到的,罗曼对 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;
    }