我有一个应用程序,它为用户提供 4 个免费令牌以启用各种功能。使用免费代币后,我希望用户通过应用内购买购买更多(使用版本 3)。如何通过卸载然后重新安装应用程序来防止用户获得更多免费令牌?该应用程序确实有一个可以维护记录的后端服务器,但我想知道这种情况下的最佳实践。
谢谢你的帮助。
我有一个应用程序,它为用户提供 4 个免费令牌以启用各种功能。使用免费代币后,我希望用户通过应用内购买购买更多(使用版本 3)。如何通过卸载然后重新安装应用程序来防止用户获得更多免费令牌?该应用程序确实有一个可以维护记录的后端服务器,但我想知道这种情况下的最佳实践。
谢谢你的帮助。
此方案的最佳实践是将数据保存在后端服务器上。然后,您需要将用户记录到远程数据库,每次您应该从后端服务获取信息。
可以有两种方式。
1)在服务器上存储一些键值对,并且每当用户第一次启动您的应用程序时,都会使用它进行检查/更新。
2)在本地存储一些键值对(您的应用程序空间将被删除),因此尝试在sdcard上的某个位置写入一个文件,名称可疑,用户应该认为该文件是系统文件。加密它并完成。
编写一个共享首选项,当用户第一次安装您的应用程序时(从主要活动),您应该在其中添加一个布尔值。如果此值不可用,请尝试检查您之前在服务器或 sdcard 上写入的存储键值对
这在很大程度上取决于您想要做到的彻底程度。你有三个选择:
您可以通过几条路线同步到后端服务器。您可以根据设备 ID 识别用户,并在您的服务器上设置一个标志,表明该设备已经兑换了它的权利。
您可以通过以下方式访问设备 ID:
import android.provider.Settings.Secure;
private String androidId = Secure.getString(getContext().getContentResolver(),
Secure.ANDROID_ID);
这将是每个设备,人们可以通过使用多个设备获得更多。在这种情况下,您可以与他们配对,Google Account
每个 Google 帐户只允许一次兑换,您将与您的服务器同步。
有关如何在 Android 上唯一标识用户的更多信息,请在此处查看Android 开发者网站 上的这篇 Google 文章。