web-dev-qa-db-ja.com

AndroidでGoogleユーザー名を取得するにはどうすればよいですか?

Android経由でのGoogleアカウントID/usernameへのアクセス のようなAccountManagerの使用に関する参照を見てきましたが、authtokenを取得するためのようですか?

ユーザー名にアクセスするだけで、パスワードや認証トークンは必要ありません。

Android 2.1 SDKを使用しています。

19
tommy chheng

コメントで述べたように、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;
}
46
tommy chheng