【问题标题】:List of Installed App From Google Play Against Google AccountGoogle Play 针对 Google 帐户安装的应用程序列表
【发布时间】:2013-06-07 23:05:04
【问题描述】:

以下是我的问题:-

  1. 是否可以通过使用任何 api 以编程方式通过 Google Play 针对他们的 google 帐户获取用户已安装的应用程序列表?请注意,我不是在询问设备中当前安装的应用程序列表,而是在某个时候已安装的应用程序列表。

我需要解决上述问题,因为我正在考虑我的应用程序中的一个场景,即:

  • 我想在前三个月免费向用户提供我的应用程序,三个月后如果用户卸载应用程序然后再次安装我想通过用户安装的任何 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.

【问题讨论】:

标签: android google-play


【解决方案1】:

对于选项 2,您可以在 SD 卡上创建一个文件。当用户卸载/安装时,这将保留在那里。但是用户可以随时删除您的特殊文件。除非您在身边做点什么,否则您永远无法确定用户之前是否已经使用过您的应用。


为了完全确定,将其在线存储: 您将需要一个非常简单的数据库,其中包含安装了您的应用程序的 device_id 列表。 还有一个填充这个数据库的网页。 在您的应用中,您下载/打开此网页,该网页将填充数据库。

App > WebClient(或其他)打开http://www.example.com/registerDevice.php?device_id=。 php 站点填充数据库。

如果当前设备已经安装了此应用程序,您的应用程序将需要检查数据库才能工作/不工作。您可以通过相同的 php 执行此操作并检查响应。例如,您可以返回“ok”或“not ok”或其他内容。

【讨论】:

  • 这将是一种非常不可靠的信息存储方法。 SD 卡可能会被格式化、替换、文件删除等。更有可能在 3 个月的时间内完成。
  • 感谢@PoweRoy 的回复。但是你能告诉我what that something I have to do at my side.
  • @mice:确实很不靠谱
  • @PoweRoy:我通过 php 站点了解了与该数据库相关的观点。但在这个问题中,我已经清楚地指出了这一点。 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.
【解决方案2】:

最简单的方法是在用户第一次运行应用程序时获取他/她的帐户,并将该详细信息发送给您。 如何做到这一点在此处有详细记录:How to get the Android device's primary e-mail address

您将不得不添加另一行代码以在应用程序第一次启动时检查回数据库。

编辑:对于非网络解决方案,只需在应用的开头添加一个计时器:

schedule(TimerTask task, Date when)

任务应该是在您希望给定的时间段之后添加一个令牌,并将用户的帐户详细信息添加到手机的内存中以进行身份​​验证(请参阅获取帐户详细信息的第一个解决方案)

最后,如上所述,为该特定文件添加回手机内存以查看用户之前是否使用过该应用。

任何类型的基于手机内存的身份验证的问题是人们可以轻松地删除令牌,如果他们能找到它,然后再次重用应用程序。

【讨论】:

  • 感谢@bernlim 的回复。但是您在写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.的问题中没有明白我的意思
【解决方案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

当然,如果用户更换设备,此方法将不起作用。但是您不需要使用任何网络服务。

【讨论】:

    【解决方案4】:

    您可以通过在第 3 方服务器上保存散列设备 ID 和用户 google id 的数据库来使用此功能。 另见http://android-developers.blogspot.de/2011/03/identifying-app-installations.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-16
      • 1970-01-01
      • 1970-01-01
      • 2020-12-24
      • 1970-01-01
      • 1970-01-01
      • 2017-04-06
      • 2018-08-08
      相关资源
      最近更新 更多