5

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

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

4

2 回答 2

5

显然,这个问题的答案是许可证在测试时没有被缓存,而是在市场上时被缓存。我创建了一个小应用程序来测试它并且它有效!

于 2010-10-12T12:05:55.603 回答
4

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

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

我已经在客户端使用 2 部分挑战解决了问题。例如:


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/

于 2010-12-06T20:10:45.290 回答