离线时的Android许可证验证库

时间:2010-10-12 09:03:37

标签: android google-play android-lvl

所以,我已经使用我的应用程序设置Android LVL来检查许可。这似乎适用于测试帐户。问题是,如果我关闭手机互联网连接并尝试运行应用程序,许可检查将失败并告诉我它没有获得许可!

有一件事是,为什么它告诉我应用程序未获得许可,更重要的是,如果应用程序是否已获得许可,我如何才能“记住”该应用程序。

2 个答案:

答案 0 :(得分:4)

显然,对此的答案是,在测试时不会缓存许可证,而是在市场上时。我创建了一个小应用程序来测试它,它可以工作!

答案 1 :(得分:4)

很抱歉,我也确认飞机模式导致无法依赖任何缓存。从理论上讲,如果应用程序在线并在脱机之前将许可证服务器固定,那么它可能会起作用。但是,如果手机在任何大量时间内处于脱机状态,则没有缓存机制。只需看看代码。我提交了一个针对android的bug: http://code.google.com/p/android/issues/detail?id=12978

因为我的Shout n'Snap shoutnsnap.com用户已经确认这种愚蠢行为。

我在客户端使用2部分挑战做了一个解决方法。 EG:


IF LICENSED:
  PERSIST random key as LK
  PERSIST obfuscated random key as OLK
ELSE:
  if (deobfuscate(OLK) == LK) 
    GRANT ACCESS
  ELSE:
    GET LOST 

代码在这里:http://code.google.com/p/androidbest/