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

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

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

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

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

Solutions Collecting From Web of "Как получить адрес электронной почты с адресом первичной покупки"

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

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

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

Я просто сделал быстрый поиск в 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 можно найти в примере кода Contact Manager в SDK.

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