如何使应用程序识别它之前是否安装在此设备上,如果是,则何时(日期)



我正在制作一个应用程序。它有免费试用版和高级版。免费版本作为高级版运行 7 天,之后它将提示用户购买高级版并退出。为此,我想出了一些想法,例如:

1)唯一标识设备,并将该唯一 ID 和日期发送到服务器。并在启动时检查此设备的应用程序是否超过 7 天(如果是这样)阻止它。当用户卸载应用并在注册到服务器后再次安装时,应用将被阻止。我已经阅读了一些唯一识别设备的方法。但正如此链接所表明的那样,它们都不可靠,并且不适用于每个设备和操作系统版本。

2)我可以将一个文件写入SD卡,指示应用程序安装,并在首次运行时检查该特定文件以检测重新安装。但是该文件可以很容易地被用户删除并重新安装应用程序,从而获得另一个 7 天的试用期,这是不可接受的。

有没有办法实现我的目标?

这些事情是可以做到的,但是,我鼓励你再想一想。 您提出的建议对用户不利,对用户不利通常意味着应用销量下降。

该应用程序每次启动时都必须与您的服务器进行检查。 因此,如果我没有数据连接或您的服务器出现故障,我无法使用它? 就算我付了钱?

无论你做什么,它都可以被击败,尤其是在使用日期限制的东西时。

我建议您考虑为免费版本中没有的高级版本增加价值,这将鼓励人们购买。 或者用广告支持免费的,很多人很乐意支付合理的金额来摆脱。 我建议不要发布以某种方式残缺的免费版本,而是让您的付费版本对用户有价值。

我的建议是——

试用版 -

  • 启动时,向服务器发送时间戳密钥(十六进制字符串形式的密钥,用于保存当前时间和设备序列号以及试用版或高级 ID)。在服务器中,如果未存储任何密钥,则表示应用程序首次启动并保存以供将来检查。服务器将向设备发送时间戳密钥(具有服务器当前时间的密钥)。设备将此密钥保存在本地数据库中。
  • 下次应用程序wii再次启动时,密钥将被发送到服务器,服务器将从密钥中提取时间和序列号,并检查第一个密钥(如首次启动时识别),如果超过7天,则确定该应用程序已过期。
  • 如果网络不可用,请不要启动应用程序。

    高级版 -

  • 从密钥中提取试用版或高级ID,它是高级不要过期的应用程序,只需继续应用程序即可。

    如果用户更改设备时间不会妨碍此逻辑,它将适用于所有情况。

  • 最新更新