2

我已经看到很多关于为 Android 应用程序创建有时间限制的试用版的线程,但它们似乎都没有达到我的目的。几天前,我推出了我的应用程序的付费版本,现在我想提供试用版,我不想从任何方面削弱它。所以我想对试用版有时间限制。我为它创建了一个不同的包名称。早些时候我使用 LVL,现在我也使用相同的,除了我创建了新的许可证库并更改了 setValidityTimestamp(extras.get("VT")); 到 setValidityTimestamp(String.valueOf(System.currentTimeMillis() + (5* MILLIS_PER_MINUTE))); 在 ServerManagedPolicy 中。

这样我就可以测试试用版是否可以工作 5 分钟,然后给我许可证错误。我在应用商店发布了它,下载了它,然后发现它仍然可以工作超过 5 分钟。现在我已经取消发布了。有人可以帮助我创建更好的时间限制应用程序,用户可以运行一周(比如说)。此外,他不应该能够卸载并重新安装它,然后再次永久使用它。我知道我是否可以将信息写入某个外部文件,但是可以再次从 sd 卡中删除该文件,并且可以使用户终身免费访问应用程序。

问候潘卡伊

4

2 回答 2

3

在 LVL 的当前功能以及用户对普通手机的控制程度范围内,如果没有服务器端组件,目前没有办法做到这一点。卸载您的应用程序后,所有痕迹(如您所指出的,您可能写入 SD 卡的文件除外,这些文件是用户可见的)都将被删除,因此检查卸载/重新安装的唯一方法是生成一个一致的、特定于设备的标识符,并与服务器组件核对,该组件要么拒绝重新安装,要么接受它作为新的计时试验。即使这也可能被专门的客户欺骗(取决于服务器端组件的行为),因此您需要设计您的软件,以便您的服务器端组件是流程的必要部分(即它不仅仅是许可证检查,它实际上是应用程序功能的一部分)。

如果您想出一些可行的方法,我很想听听,但我会说您不走运。

于 2012-05-05T14:26:47.963 回答
0

@Femi 是对的,您需要一个服务器端组件才能始终工作。我倾向于只发布免费版本,而用户则以应用内购买的形式购买完整版本。IAP 服务器是您的服务器端检查用户是否购买了升级。您可以在首次使用时存储首选项,以了解用户何时开始使用该应用程序。如果用户卸载并再次安装您的应用程序,他们将获得一个新的试用期,但这很烦人,很少有人会为了节省几块钱而这样做。如果您在应用程序中添加一条消息,要求用户升级,或者在升级后删除广告,那么这是一个足够好的解决方案。

于 2012-05-05T14:57:22.477 回答