为什么我总是从android-lvl获得相同的测试响应?

时间:2011-08-24 15:32:36

标签: android android-lvl

我刚刚在我的应用中实现了LVL。我首先在我的开发者帐户设置=>中设置了对“LICENSED”的测试响应。一切正常;我收到了这个答案。

当我将测试响应更改为“NOT_LICENSED”时,即使在我的开发者帐户中更改了值后的两小时,我仍然会在我的应用中获得结果“LICENSED”。

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:4)

如您所知并已在一条评论中写道,ServerManagedPolicy有一个缓存。这意味着一旦您得到肯定的回复,只要它有效,就会采取此响应。 即使您已连接,应用程序也不会在上一次正面响应的有效期内联系许可服务器。缓存不仅可以用于离线使用,还可以避免耗费太多时间进行网络查询。

这是你应该做的:而不是ServerManagedPolicy

mChecker = new LicenseChecker(this,//
                new ServerManagedPolicy(this,
                new AESObfuscator(SALT,getPackageName(),
                deviceId)), //
                BASE64_PUBLIC_KEY // The public licensing key.
        );

使用StrictPolicy

mChecker = new LicenseChecker(this, new StrictPolicy(), BASE64_PUBLIC_KEY);

并尝试它是否有效。完成测试后,请将其更改回来,以便用户可以从ServerManagedPolicy的缓存中获益。