Android:我应该在每次打开应用程序时调用LicenseChecker吗?

时间:2011-01-19 18:01:26

标签: android android-lvl

所以我已经向后和向前阅读了LVL文档,并让它与我的应用程序一起工作。我已经看到有关缓存响应的问题。但是,根据LVL文档中的一些措辞,谷歌还是希望我们每次初始化应用程序时都要求我们调用许可检查程序吗?这是最安全的实现方式吗?使用像Google建议的ServerManagedPolicy,我们只是调用许可证检查,运行我们的应用程序或做任何我们选择失败的东西吗?我最关心的一个问题是网络数据的使用。他们向我们展示了在不通知用户的情况下谨慎使用资源的需要,在我看来,这是在不让用户知道的情况下使用网络数据。

要添加此功能,是否有人因此代码而对其应用程序造成任何类型的延迟?由于我的应用程序的性质,打开它,然后等待每次通过网络的确定肯定会分散其使用。我应该自己缓存响应,还是我想过这个?

4 个答案:

答案 0 :(得分:1)

你回答了自己的问题;如果你觉得每次启动时调用服务都会造成破坏性(例如用户不在保险范围内),那么就不要这样做了。

Google没有就使用许可服务的频率提出任何建议;这取决于你作为应用程序开发人员对盗版的偏执,与你不断检查的程度会让用户感到厌烦。

答案 1 :(得分:1)

好的,公平的,偶尔只检查一次..但是你在哪里可以“安全地”存储信息,你应该每天只检查一次? 例如,第一次启动应用程序时,您将进行检查。 LVL的结果有效:因此您存储上次成功检查的日期。但在哪里存放?使用SharedPreferences?这样安全吗?因为如果您在设备上拥有超级用户权限,则可以访问首选项并更改有效日期(在将来的任何一种情况下,是的,您可以在代码中检查: - )

PS。对不起,无法发表评论:(

答案 2 :(得分:1)

每次启动应用程序时都要调用它。谷歌提供的LVL库将缓存响应并在用户下次启动应用程序时使用它,因此如果他们在缓存有效时间范围内重新启动应用程序,则不需要网络连接。

您可能想要做的是更改缓存有效的时间。默认情况下,谷歌发布的缓存有效时间相当低,导致缓存过期时出现在网络之外的一些不满用户。

答案 3 :(得分:0)

关于LVL:虽然SDK提供了一个示例实现,但Google自己明确建议不要使用它" as-is"。

http://www.google.com/events/io/2011/sessions/evading-pirates-and-stopping-vampires-using-license-verification-library-in-app-billing-and-app-engine.html

在观看之后,我相信,LVL不适合售价1-2美元的应用。此外,LVL检查失败(如果没有网络可用)会使合法用户失望。

虽然这是真的,你可以实现某种缓存LVL响应,它总是会提到问题,你想要以合理用户为代价防止盗版到底有多远?

并且:开发人员时间有限,所以也许更有价值的是努力改进应用程序,而不是浪费太多时间来减少非法使用。