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

Информация об учетной записи, связанная с установкой приложения

Это широко популярная проблема среди тех, кто внедряет биллинг In-app в Android, о том, как обрабатывать несколько учетных записей. Если у пользователя настроено несколько учетных записей, какой из них будет использоваться для выставления счетов в приложении (так как нет возможности разрешить пользователю выбирать учетную запись)? После многократного копания, следующий абзац здесь, кажется, объясняет это.

Примечание. Для проведения тестовых покупок учетная запись для проверки лицензии должна находиться на устройстве Android для пользователей. Если устройство имеет более одной учетной записи, покупка будет производиться с учетной записью, загружающей приложение. Если ни одна из учетных записей не загрузила приложение, покупка производится с помощью первой учетной записи. Пользователи могут подтвердить учетную запись, которая совершает покупку, путем расширения диалогового окна покупки.

Я создаю полезную нагрузку разработчика, используя учетную запись, которая используется для биллинга приложений, чтобы ее можно было восстановить должным образом в более поздний момент времени или на каком-либо другом устройстве. Но, поскольку Honeycomb, нет такой вещи, как Первичная учетная запись. Пользователь может удалить любую учетную запись, может быть та, с которой было куплено приложение, и в этом случае первая учетная запись из списка учетных записей будет использоваться для выставления счетов. Теперь, если я знаю, какая учетная запись была использована, и если это не "учетная запись с установленным приложением", я могу хотя бы сообщить пользователю, что последующие покупки не будут восстановлены позже.

Итак, мой вопрос...

Есть ли способ найти, какая учетная запись была использована для загрузки приложения?

Google Play, похоже, использует эту информацию. В любом случае мы можем взаимодействовать с Google Play до этого уровня?

note: PackageManager, похоже, не справляется с этим.

4b9b3361

Ответ 1

Если вы хотите получить имя идентификатора почты учетной записи, которое настроено для воспроизведения учетной записи магазина в настоящее время. Пожалуйста, используйте его. Я помещаю здесь только имя электронной почты, но вы можете получить всю информацию об учетной записи типа type, descriptin из объекта account

  Pattern emailPattern = Patterns.EMAIL_ADDRESS; 
            Account[] accounts =        AccountManager.get(this).getAccountsByType("com.google");
            for (Account account : accounts) {
                if (emailPattern.matcher(account.name).matches()) {
                    primaryEmailID = account.name;

                }
            }

Ответ 2

Чувство кистей подсказывает мне создать свои собственные комбинации AccountManager и SyncAdapter. Чтобы контролировать учетную запись, связанную с вашим биллинг в приложении. Затем вы могли бы поддерживать слияние учетных записей на своем сервере (если пользователь предпринимает действия и решает объединить учетные записи) и обрабатывать выставление счетов одному и тому же лицу или на основе своих учетных записей. Также, если вы хотите это сделать, восстановите покупки на одном устройстве. Вы можете применять политики устройств и т.д., Используя Лицензирование для Google Play и т.д. DeviceLimiter

Если пользователь удалит старую учетную запись, ваша команда AccountManager и SyncAdapter создаст новую учетную запись, а затем пользователь будет вынужден объединять учетные записи на вашем сервере, чтобы восстановить предыдущие покупки, и у вас будет новый "Первичная учетная запись".

Как сказал Эдисон в ваших комментариях. Должен быть способ записи учетной записи, связанной с первой покупкой, и оттуда.

Это только мои мысли, и я надеюсь, что мы сможем пролить свет на это и выяснить "наилучшую практику", чтобы поддержать это.