通过重新安装应用程序防止用户获取免费耗材

时间:2013-01-24 15:21:00

标签: android in-app-purchase in-app-billing

我有一个应用程序,它为用户提供4个免费令牌以启用各种功能。使用免费令牌后,我希望用户通过应用内购买购买更多(使用版本3)。如何通过卸载然后重新安装应用程序来阻止用户获得更多免费令牌?该应用程序确实有一个可以维护记录的后端服务器,但我想知道这种情况的最佳实践。

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

此方案的最佳做法是在后端服务器上保存数据。您需要将用户记录到远程数据库,然后每次都应该从后端服务获取信息。

答案 1 :(得分:0)

可以有两种方式。

1)在服务器上存储一些键值对,每当用户第一次启动你的应用程序时,检查/更新。

2)在本地存储一些键值对(您的应用空间将被删除),因此尝试在某个位置使用可疑名称在SD卡上写入文件,该用户应该认为该文件是系统文件。加密它就完成了。

写一个共享首选项,当用户第一次安装你的应用程序时(从主活动)你应该添加一个boolen。如果此值不可用,请尝试使用之前在服务器或sdcard上写入的存储键值对进行检查

答案 2 :(得分:0)

这很大程度上取决于你想要多么彻底。你有三个选择:

  • 在私人商店中存储数据会导致数据被删除 当用户清除您的数据或卸载您的应用程序时,同样如此 进行。
  • 你可以使用SD卡(或内部存储,远​​离你的 应用程序私有商店),将文件添加到包含的文件中 配置,删除应用程序时不会删除(但用户可以 明智地存在文件并实现它的作用)。这将是 更加傻瓜。
  • 当然最好的选择是与后端服务器同步。

您可以使用几条路线同步到后端服务器。您可以根据设备ID识别用户,并在服务器上设置一个标志,表明该设备已经兑换了它的权利。

您可以通过以下方式访问设备ID:

import android.provider.Settings.Secure;

private String androidId = Secure.getString(getContext().getContentResolver(),
                                                            Secure.ANDROID_ID); 

这将是每个设备,人们可以通过使用多个设备获得更多。在这种情况下,您可以与他们的Google Account配对,只允许每个Google帐户兑换一次与您的服务器同步的帐户。

有关如何在Android上唯一标识用户的详情,请参阅 Android开发者网站 here上的这篇Google文章。