当前位置:  开发笔记 > 编程语言 > 正文

通过Android访问Google帐户ID /用户名

如何解决《通过Android访问Google帐户ID/用户名》经验,为你挑选了2个好方法。

如何在代码中访问用户的Google帐户ID /用户名?我正在构建一个应用程序,它将调用Web服务来存储数据,我想识别提交数据的人的身份.



1> Fabricio Buz..:

我遇到了同样的问题,这两个链接为我解决了:

第一个是这一个:如何在Android手机上检索登录的Google帐户?

其中显示了用于检索与手机关联的帐户的代码.基本上你需要这样的东西:

AccountManager manager = (AccountManager) getSystemService(ACCOUNT_SERVICE);
Account[] list = manager.getAccounts();

并在AndroidManifest.xml中添加权限



此外,如果您使用模拟器,以下链接将帮助您使用帐户进行设置:Android模拟器 -无法创建用户帐户

基本上,它说你必须创建一个基于API级别而不是SDK版本的Android设备(就像通常那样).


仅适用于android 8.0之前的API 26

2> 小智..:

此方法获取Google用户名:

 public String getUsername() {
    AccountManager manager = AccountManager.get(this);
    Account[] accounts = manager.getAccountsByType("com.google");
    List possibleEmails = new LinkedList();

    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 > 0 && parts[0] != null)
            return parts[0];
        else
            return null;
    } else
        return null;
}

简单这个方法叫....

并通过Gmail id获取Google用户::

 accounts = AccountManager.get(this).getAccounts();
    Log.e("", "Size: " + accounts.length);
    for (Account account : accounts) {

        String possibleEmail = account.name;
        String type = account.type;

        if (type.equals("com.google")) {
            strGmail = possibleEmail;

            Log.e("", "Emails: " + strGmail);
            break;
        }
    }

在清单中添加权限后;






为什么需要interenet和访问网络状态权限?
推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有