如何在Android手机上检索登录的Google帐户?

fan*_*nar 22 android accountmanager

我正在开发Android应用程序,我需要检索手机上使用的Google帐户.我想为C2DM做这个,但我不想让用户输入他/她的谷歌电子邮件帐户,如果他们已经登录.有什么办法吗?

小智 45

这样的事情应该有效:

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

for(Account account: list)
{
    if(account.type.equalsIgnoreCase("com.google"))
    {
        gmail = account.name;
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

您需要在清单中获得以下权限:

<uses-permission android:name="android.permission.GET_ACCOUNTS"></uses-permission>
Run Code Online (Sandbox Code Playgroud)

如果您支持Android 6及更高版本,记住"在运行时请求权限" https://developer.android.com/training/permissions/requesting.html

我是从内存中写的,所以可能需要稍微调整一下.显然,现在可以在没有电子邮件地址的情况下进行注册,因此可以对数据进行一些重新设置,以确保它实际上是一个电子邮件地址(确保它包含@gmail或@googlemail)

  • 手机可以注册多个gmail帐户,您应该让用户选择其中一个 (2认同)