如何捕获用于Android市场的Gmail ID

时间:2013-10-29 16:58:36

标签: android email

我使用以下代码获取android的主要电子邮件ID。

       String possibleEmail = null;

    Pattern emailPattern = Patterns.EMAIL_ADDRESS; // API level 8+
    Account[] accounts = AccountManager.get(getBaseContext()).getAccounts(); {
    for (Account account : accounts) {
    if (emailPattern.matcher(account.name).matches()) {
    possibleEmail = account.name;
    }
    }

    final TextView user = (TextView)findViewById(R.id.username);
    user.setText(possibleEmail);}

}

此代码的问题是,当用户在其设备上添加新的电子邮件帐户时,它会返回不同的电子邮件ID。对于前者在我的设备安装应用程序时。只有一个电子邮件帐户是用于播放商店的主要Gmail帐户。但是当我添加另一个活动的同步电子邮件ID时,此代码返回第二个ID。我想只捕获他们的Android市场ID。为什么我特别关注那个已经我已经在我的mysql数据库中注册了那些电子邮件ID。只有我的公司员工应该使用这个应用程序,并且他们从Android设备访问时不需要身份验证(注册的gmail id)

1 个答案:

答案 0 :(得分:0)

您使用的代码是使用电子邮件地址循环遍历所有帐户,并将possibleEmail设置为找到的最后一个帐号。

也许你想要的是找到type="com.google"的帐户,如果有多个帐户向用户显示该列表,并允许他们选择他们想要用于登录的Google帐户。

这似乎对我找到谷歌帐户有用:

TextView tv = (TextView) findViewById(R.id.textView1);
tv.setText("");

Pattern emailPattern = Patterns.EMAIL_ADDRESS;
Account[] accounts = AccountManager.get(getBaseContext()).getAccounts();
for (Account account : accounts)
{
    if (emailPattern.matcher(account.name).matches() && account.type.equals("com.google"))
    {
        tv.append(account.name + "\n");
    }
}