安装的应用程序列表从谷歌对战谷歌​​帐户(List of Installed App From Go

2019-07-30 16:21发布

以下是我的问题: -

  1. 是否有可能得到的用户已安装完毕,对通过谷歌Play上的谷歌帐户的应用程序列表中,编程通过使用任何API的? 请注意,我不问有关当前安装在设备中的应用程序列表中,但已经安装那些有在某些时候。

我需要一个解决方案上面,因为我想在我的应用程序的情景,这是:

  • 我想给我的应用程序给用户免费期间的前三个月,三个月后,如果用户卸载应用程序,然后再装上它,我想通过任何API来检测(从谷歌播放)用户已经安装了这个应用程式第二次(且不应得到任何免费使用)。 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.

Answer 1:

对于第二种情况,您可以创建在SD卡上的文件。 当用户卸载/安装这将留在那里。 但是,用户可以随时删除自己的特殊文件。 除非你在你身边做一些事情,你永远不会知道,如果用户已经使用过您的应用程序。


为了完全确定,其存储在线:你需要有其中认为安装应用程式的DEVICE_ID列表的非常简单的数据库。 进一步网页填补这个数据库。 在您的应用程序,你下载/打开这个网页,该网页将填补DB。

这将打开应用> Web客户端(或其它) http://www.example.com/registerDevice.php?device_id= 。 PHP站点中充满分贝。

你的应用程序将需要检查的数据库,如果当前的设备已经安装这个程序序工作/无法正常工作。 您可以通过同一个PHP做到这一点,检查响应。 例如,您可以返回“OK”或“不正常”或别的东西。



Answer 2:

最简单的方法是让该帐户,他/她将运行应用程序第一次的用户,并发送细节交给你。 这如何可以做到详细记录在这里: 如何获得Android设备的主电子邮件地址

你将不得不添加另一行代码的程序的第一个开始检查回数据库。

编辑:对于非网络解决方案,只需一个计时器添加到您的应用程序的启动:

schedule(TimerTask task, Date when)

任务应该增加一个令牌,你想给一段时间后,到手机的用户的帐户信息进行身份验证内存(请参阅上获得帐户的详细信息的解决方案)

最后,如上所述,添加一个检查,回手机的内存中的特定文件,以查看用户是否之前使用的应用程序。

与任何类型的身份验证是基于手机的内存的问题是,人们可以很容易地取出令牌,如果能找到它,并再次重复使用的应用程序。



Answer 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

当然,如果用户更换设备这种方法是行不通的。 但你并不需要使用任何Web服务。



Answer 4:

您可以通过保持哈希设备ID和用户ID谷歌的数据库的第三方服务器上使用此。 另见http://android-developers.blogspot.de/2011/03/identifying-app-installations.html



文章来源: List of Installed App From Google Play Against Google Account