Android 当我们打开手机并注册时,如何获得第一个Gmail帐户的详细信息

Android 当我们打开手机并注册时,如何获得第一个Gmail帐户的详细信息,android,accountmanager,Android,Accountmanager,我有下面的代码,可以获取所有与我手机同步的gmail id,但我想要用户第一次注册的主gmail id。因为所有其他的gmail账户(不是主账户)如果我想的话,我可以随时删除,但是要删除主账户,我们还必须做其他事情,所以这就是为什么我想在我的应用程序中使用主账户 这是我的代码,我想在其中添加一些过滤器,我可以这样做,但不能得到正确的东西 Account[] accounts=AccountManager.get(this).getAccountsByType("com.google");

我有下面的代码,可以获取所有与我手机同步的gmail id,但我想要用户第一次注册的主gmail id。因为所有其他的gmail账户(不是主账户)如果我想的话,我可以随时删除,但是要删除主账户,我们还必须做其他事情,所以这就是为什么我想在我的应用程序中使用主账户

这是我的代码,我想在其中添加一些过滤器,我可以这样做,但不能得到正确的东西

Account[] accounts=AccountManager.get(this).getAccountsByType("com.google");
    for(Account account: accounts)
    {
        String possibleEmail=account.name;
        Log.d("Possible email id's of user", possibleEmail);
    }
我已经看到了链接,但无法以正确的方式转换它。
我想使用谷歌的C2DM将此主电子邮件id用于推送通知。

如果您找到多个您要查找的类型的帐户,您可能应该让用户选择。安卓3没有“主要账户”的区别;您可以从设备中删除任何帐户,无论它是否是第一个添加的帐户。

我有一个答案,但这不是正确的方法。当我获取所有与谷歌(gmail)相关的账户时,当我们输入要与gmail同步的电子邮件id时,会创建一个堆栈,在第0个位置,我获取用户在打开手机时首次输入的主要gmail id

    Account[] accounts=AccountManager.get(this).getAccountsByType("com.google");
    String myEmailid=accounts[0].toString();
    Log.d("My email id that i want", myEmailid);
    for(Account account: accounts)
    {
        String possibleEmail=account.toString();
        Log.d("Possible email id of user", possibleEmail);

    }

如果有人有更好的解决方案,请告诉我,我在两部手机上测试了这个示例,效果很好,但我看到许多应用程序正在获取用户的主要电子邮件id以发送电子邮件,我想知道他们的情况如何?

下面的代码获取电子邮件地址,不需要任何GET\u帐户权限

  private static final int REQUEST_CODE_EMAIL = 1;
        email = (TextView) findViewById(R.id.email);
        ...
        try {
            Intent intent = AccountPicker.newChooseAccountIntent(null, null,
                    new String[] { GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE }, false, null, null, null, null);
            startActivityForResult(intent, REQUEST_CODE_EMAIL);
        } catch (ActivityNotFoundException e) {
            // TODO
        }
        ...

    @Override
    protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
        if (requestCode == REQUEST_CODE_EMAIL && resultCode == RESULT_OK) {
            String accountName = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
            email.setText(accountName);
        }
    }

是的,我明白你的意思了,但问题是我想用这个gmail帐户发送推送通知,如果用户删除了不是主帐户的帐户,但他选择了它来发送通知,那么我的通知根本不起作用,这就是为什么我想获得推送通知的主要gmail id。是的,我可以为谷歌的facebook获取twitter的帐户类型,但问题是,每当我使用com.google进行过滤时,我都会获得两个、三个同步的帐户,但无法将它们区分为主要帐户。