Как получить данные первой учетной записи Gmail, когда мы включаем наш телефон и регистрируем его - PullRequest
2 голосов
/ 17 мая 2011

У меня есть следующий код, который получает все идентификаторы gmail, синхронизированные с моим телефоном, но я хочу, чтобы основной идентификатор gmail регистрировался пользователем в первый раз.Поскольку все остальные учетные записи 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);
    }

я уже видел Роман ссылкано не смог правильно его преобразовать.Я хочу использовать этот основной идентификатор электронной почты для push-уведомлений с помощью C2DM от Google.

Ответы [ 3 ]

6 голосов
/ 18 мая 2011

У меня есть ответ, но это был неправильный способ сделать это. Поскольку я получаю все учетные записи, связанные с google (gmail), и когда мы вводим идентификаторы электронной почты для синхронизации с gmail, создается стек, и на 0-й позиции я получаю основной идентификатор Gmail, который был впервые введен пользователем, когда он включил свой телефон.

    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);

    }

Если у кого-то есть лучшее решение, то дайте мне знать, я протестировал этот пример на 2 телефонах, и он работает нормально, но я вижу много приложений, которые выбирают основной идентификатор электронной почты пользователей для отправки электронной почты и все, я хочу знать как они поживают?

1 голос
/ 17 мая 2011

Если вы найдете более одной учетной записи того типа, который вы ищете, вам, вероятно, следует разрешить пользователю выбирать.Android 3 не имеет различий между «основным аккаунтом»;Вы можете удалить любую учетную запись с устройства независимо от того, была ли она добавлена ​​первой или нет.

0 голосов
/ 12 мая 2014

Следующий код получает адреса электронной почты и не требует разрешения GET_ACCOUNTS ....

  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);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...