5

所以我已经前后阅读了 LVL 文档,并让它与我的应用程序一起使用。我已经看到有关缓存响应的问题。但它仍然让我想知道,基于 LVL 文档中的一些措辞,谷歌是否希望我们在每次应用程序初始化时调用许可证检查器?这是最安全的实施方式吗?像 Google 建议的那样使用 ServerManagedPolicy,我们是否只是调用许可证检查,然后运行我们的应用程序,或者如果它们失败则执行我们选择的任何操作?我的一个小问题是网络数据的使用。他们向我们灌输了在不通知用户的情况下谨慎使用资源的必要性,在我看来,这是在不让用户知道的情况下使用网络数据。

除此之外,是否有人因为此代码而遇到任何类型的应用程序延迟?由于我的应用程序的性质,打开它然后每次都等待一个 ok 通过网络肯定会分散其使用的注意力。我应该自己缓存响应,还是我想太多了?

4

4 回答 4

2

你是在自问自答; 如果您觉得每次启动时都调用该服务会造成干扰(它会,例如用户不在覆盖范围内),那么不要这样做。

Google 没有就使用许可服务的频率提出建议;这取决于您作为应用程序开发人员对盗版的偏执程度,以及您认为不断检查会惹恼用户的程度。

于 2011-01-19T19:04:35.580 回答
1

好的,公平的,只偶尔检查一次。但是你可以在哪里“安全地”存储信息,你应该每天检查一次?例如,第一次启动应用程序时,您会检查它。LVL 的结果是有效的:所以你存储最后一次成功检查的日期。但是在哪里存放呢?使用共享偏好?这安全吗?因为如果您在您的设备上具有 root 访问权限,您可以访问首选项并更改有效日期(将来无论哪种方式,是的,当然您可以在代码中检查:-))

PS。抱歉,无法发表评论:(

于 2011-01-19T19:38:13.227 回答
1

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

您可能想要做的是更改缓存有效的时间量。默认情况下,谷歌提供的缓存有效时间相当短,这导致缓存过期时一些网络外的用户感到不安。

于 2013-02-21T18:35:02.140 回答
0

关于 LVL:虽然 SDK 提供了一个示例实现,但 Google 自己明确建议不要“按原样”使用它。

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 响应,但它总是会归结为一个问题,即您想在多大程度上以牺牲合法用户为代价来防止盗版?

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

于 2012-06-21T19:48:34.110 回答