Список установленных приложений из Google Play против учетной записи Google

Ниже приведены мои проблемы: -

  • Возможно ли получить список приложений, которые пользователь установил, против своей учетной записи google через Google Play, программно с помощью любого api?. Обратите внимание, что я не спрашиваю о списке приложений, установленных на устройстве, но те, которые в какой-то момент были установлены.

Мне нужно решение выше, поскольку я думаю о сценарии в своем приложении, которое:

  • Я хочу бесплатно отдать свое приложение пользователю в течение первых трех месяцев, через три месяца, если пользователь удалит приложение и затем снова установит его. Я хочу обнаружить через любой api (из Google Play), который пользователь установил приложение во второй раз (и не должно быть бесплатного использования). Please note that I don't want to use any web service to store the account id & device id of the user at my side.

Ответ 1

Для варианта 2 вы можете создать файл на SD-карте. Это останется там, когда пользователь удалит/установит. Но пользователь всегда может удалить ваш специальный файл. Если вы не делаете что-то на своей стороне, вы никогда не уверены, что пользователь уже использовал ваше приложение раньше.


Чтобы быть абсолютно уверенным, храните его в Интернете: Вам нужно будет иметь очень простую базу данных, в которой содержится список device_id, который установил ваше приложение. Кроме того, веб-страница заполняет эту базу данных. В своем приложении вы загружаете/открываете эту веб-страницу, которую веб-страница будет заполнять БД.

App > WebClient (или другое), которое открывает http://www.example.com/registerDevice.php?device_id=. Сайт php заполняет db.

Вам нужно будет проверить базу данных, если текущее устройство уже установило это приложение для работы/не работает. Вы можете сделать это через один и тот же php и проверить ответ. Например, вы можете вернуть "ok" или "не нормально" или что-то еще.

Ответ 2

Самый простой способ - получить учетную запись пользователя при первом запуске приложения и отправить эту деталь вам. Как это можно сделать, хорошо документировано здесь: Как получить основной адрес электронной почты устройства Android

Вам нужно будет добавить еще одну строку кода для возврата к базе данных при первом запуске приложения.

EDIT: для не-веб-решения просто добавьте таймер в начало вашего приложения:

schedule(TimerTask task, Date when)

задача должна заключаться в том, чтобы добавить токен ПОСЛЕ того периода времени, который вы хотите передать, в память телефона с данными учетной записи пользователя для проверки подлинности (см. первое решение для получения данных учетной записи)

Наконец, как указано выше, добавьте обратную запись в память телефона для этого конкретного файла, чтобы узнать, использовал ли пользователь приложение раньше.

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

Ответ 3

Попробуйте выполнить эту конкретную реализацию устройства:

PackageManager packageManager = getContext().getPackageManager();
List<ApplicationInfo> applications = packageManager.getInstalledApplications(
        PackageManger.GET_UNINSTALLED_PACKAGES);
// retrieves some information about all applications (even uninstalled ones)
// which have data directories

Конечно, этот метод не будет работать, если пользователь заменит устройство. Но вам не нужно использовать какой-либо веб-сервис.