2012-07-30 49 views
11

以下是我的问题: -列出已安装的应用程序的从谷歌对战谷歌​​帐户

  1. 是否有可能通过获得的用户已经安装了,对他们的谷歌帐户通过谷歌播放应用程序列表中,编程使用任何api ?.请注意,我没有询问设备中当前安装的应用程序列表,但是已经安装了某些应用程序。

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

  • 我想在最初的3个月给我的应用程序给用户免费,三个月后,如果用户卸载应用程序,然后再次安装,我希望通过任何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.
+0

在这里,您可以开始搜索:http://code.google.com/p/android-market-api/ 这也可能是有益的:http://stackoverflow.com/问题/ 10661434 /没有谷歌播放有一个API – Ronnie 2012-08-03 18:33:46

回答

5

对于选项2,您可以在SD卡上创建一个文件。当用户卸载/安装时,这将保持在那里。但用户可以随时删除您的特殊文件。除非你在身边做某件事,否则你永远不知道用户是否已经使用过你的应用程序。


完全确信,在线存储是: 你需要有其中认为安装应用程式的DEVICE_ID列表的非常简单的数据库。 此外,还有一个填充此数据库的网页。 在您的应用程序中,您下载/打开该网页将填充数据库。

应用>这将打开http://www.example.com/registerDevice.php?device_id= Web客户端(或其它)。该PHP网站填充数据库。

您的应用程序将需要检查的数据库,如果当前的设备已经安装这个程序序工作/无法正常工作。你可以通过相同的php来做到这一点,并检查响应。例如,你可以返回'ok'或'not ok'或其他东西。

+1

这将是非常不可靠的方法来存储信息。 Sdcard可能被格式化,替换,删除文件等。更可能在3个月的时间范围内。 – 2012-08-01 20:59:50

+0

感谢您的回复@PoweRoy。但是,你能告诉我“我在我身边必须做些什么吗?”。 – 2012-08-02 03:53:37

+0

@mice:确实这是非常不可靠 – RvdK 2012-08-02 14:45:48

3

最简单的方法是让该帐户的第一次,他/她将运行应用程序的用户,并发送细节交给你。 如何,这是可以做到的是证据充分的看过来:How to get the Android device's primary e-mail address

您必须添加另一行代码的程序的第一个开始检查回数据库。

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

schedule(TimerTask task, Date when) 

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

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

问题与基于手机内存的任何类型的身份验证是人们可以很容易地删除令牌,如果他们可以找到它,并重新使用该应用程序。

+0

感谢@bernlim的回复。但是在写下''''''''''''''''''''''''''''''''''''''''''''''''''''''这个问题上您没有明白我的意思。我不想使用任何Web服务来存储用户的帐户ID和设备ID。' – 2012-08-06 03:22:41

+0

为您编辑! – bernlim 2012-08-06 05:46:53

0

试试这个装置具体实施:

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服务。

相关问题