如何在代码中访问用户的Google帐户ID /用户名?我正在构建一个应用程序,它将调用Web服务来存储数据,我想识别提交数据的人的身份.
我遇到了同样的问题,这两个链接为我解决了:
第一个是这一个:如何在Android手机上检索登录的Google帐户?
其中显示了用于检索与手机关联的帐户的代码.基本上你需要这样的东西:
AccountManager manager = (AccountManager) getSystemService(ACCOUNT_SERVICE); Account[] list = manager.getAccounts();
并在AndroidManifest.xml中添加权限
此外,如果您使用模拟器,以下链接将帮助您使用帐户进行设置:Android模拟器 -无法创建用户帐户
基本上,它说你必须创建一个基于API级别而不是SDK版本的Android设备(就像通常那样).
此方法获取Google用户名:
public String getUsername() { AccountManager manager = AccountManager.get(this); Account[] accounts = manager.getAccountsByType("com.google"); ListpossibleEmails = 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; } }
在清单中添加权限后;