2011-01-19 76 views
5

因此,我已经阅读了LVL文档,并将其与我的应用程序配合使用。我已经看到有关缓存响应的问题。但是,仍然让我想到,根据LVL文档中的一些措辞,Google是否希望我们在每次应用程序初始化时都打电话给许可证检查器?这是实施这个最安全的方法吗?像Google建议的那样使用ServerManagedPolicy,我们是否只需调用许可证检查,并运行我们的应用程序,或者如果他们失败了,我们会选择做什么?我的一个小问题是使用网络数据。他们深入研究我们需要谨慎使用资源而不通知用户,在我看来,这是对网络数据的使用,而不让用户知道。Android:每次打开应用程序时我应该打电话给LicenseChecker吗?

要补充一点,是否有人因为此代码而遇到任何类型的延迟到他们的应用程序?由于我的应用程序的性质,打开它,然后等待每一次通过网络来确定通过它肯定会分散它的使用。我应该自行缓存回应,还是我想方设法?

回答

1

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

Google不会就使用许可服务的频率提出建议;这取决于应用程序开发人员是如何偏执于盗版的,这与您感觉经常检查会令用户烦恼的程度相平衡。

+0

感谢您的回复。在发布问题后,我一直在阅读更多内容并仔细研究。它看起来像LVL会做它自己的缓存。所以我可能会过度关注这会产生的实际流量。我只是打电话给主程序的onCreate上的许可证检查。如果它成为一个真正的问题,我可以用更宽松的版本发布更新。我只是假设ServerManagedPolicy会为我做所有的后台工作,就像他们说的那样。 – Isaac 2011-01-19 19:54:29

+0

在@Tom的回答中看到我上面的评论。举一个简单的例子,结果Toast,你会看到每次启动应用程序时都会调用它。 – trgraglia 2011-01-30 15:52:07

1

好的,公平的,只能在一段时间内检查一下。但是,您可以在哪里“安全”存储信息,并且每天只检查一次? 例如,第一次启动应用程序时,您会检查它。 LVL的结果是有效的:所以你存储了上次成功检查的日期。但是在哪里存储?使用SharedPreferences?这安全吗?因为如果你在你的设备上有root权限,你可以访问这个首选项并且改变有效的日期(以后任何一种方式,当然你可以在代码中检查:-))

PS。很抱歉,无法作出评论:(

+0

汤姆,我和你在一起。你的代码中的哪个部分可以存储这些信息,而不必将其放置在公开区域?我只是想让ServerManagedPolicy代码完成这项工作。我猜想这将会和门锁类似。他们保持诚实的人诚实。如果有人想要在你的房子里,他们只会打破一个窗口,并进入。 – Isaac 2011-01-19 19:56:28

0

关于LVL:虽然SDK提供了一个样本实现,谷歌自己,明确建议不要使用它“原样”

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响应,它总是会回到这个问题上,在你想要保护ag的距离有多远以盗用合法用户为代价的盗版行为?

而且:开发人员时间有限,所以也许更值得花时间去改进应用程序,而不是浪费大量时间来减少非法使用。

0

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

您可能想要做的是更改缓存有效的时间量。默认情况下,Google提供的缓存有效时间相当低,导致缓存过期时网络外部的一些烦心用户。

相关问题