Подтвердить что ты не робот

Как получить адрес электронной почты с адресом первичной покупки

До появления Android 3.0 первой учетной записью com.google, зарегистрированной на телефоне, была основная учетная запись и единственная учетная запись, используемая в Android Market.

В устройствах на Android 3.0 и выше я больше не могу полагаться на это (Account[0]), чтобы получить адрес электронной почты клиента.

Есть ли способ сообщить , какая учетная запись аккаунта com.google в настоящее время совершает покупку?

(все, что мне нужно, это индекс в массив Account[] для типа учетной записи com.google. Я могу получить адрес электронной почты, когда у меня есть соответствующий индекс)

4b9b3361

Ответ 1

Я боюсь, что это невозможно. Из того, что я нашел, похоже, что учетная запись, делающая покупку in-app, является учетной записью, используемой для установки приложения, которое вы не знаете. Я думаю, возможно, это можно будет прочитать из базы данных приложений Play Store на корневых телефонах.

Похоже, что даже после покупки не удалось найти учетную запись покупки, используя API для разработчиков Google Play для Android, а не Конечно, почему это так.

Если вы, случайно, узнаете это, дайте мне знать.

Ответ 2

Я только что быстро просмотрел Google и нашел это на этом сайте здесь.

Вы можете использовать AccountManager.getAccounts или AccountManager.getAccountsByType, чтобы получить список всех имен учетных записей на устройстве. К счастью, для определенных типов учетных записей (включая com.google) имена учетных записей являются адресами электронной почты. Пример фрагмента ниже.

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

Обратите внимание, что для этого требуется разрешение GET_ACCOUNTS:

<uses-permission android:name="android.permission.GET_ACCOUNTS" />

Подробнее об использовании AccountManager можно найти в код менеджера контактов в SDK.

Ответ 3

firs имя и фамилия → код java?

email добавить код

Pattern emailPattern = Patterns.EMAIL_ADDRESS; // API level 8+
Account[] accounts = AccountManager.get(getApplicationContext()).getAccounts();
for (Account account : accounts) {
    if (account.type.equals("com.google")) {
        email = account.name.toString();
        break;
    } else if (emailPattern.matcher(account.name).matches()) {
        email = account.name.toString();
    }
}

Ответ 4

import android.provider.ContactsContract;

AccountManager am = AccountManager.get(this);
Account[] accounts = am.getAccountsByType("com.google");        

//you can set current sync account..

boolean syncEnabled = ContentResolver.getSyncAutomatically(accounts[0], ContactsContract.AUTHORITY);