我在网上浏览了一下,看到其他一些帖子抱怨Android许可(LVL)库速度太慢,但没有解决方案。在HTC Thunderbolt (全新手机)上,它会将测试应用程序的启动时间延迟3-5秒以上。
有没有人有异步调用这个库的经验或想法?其他解决方案?基本上,我只是使用提供的示例代码。真正恼人的部分是,整个应用程序都被冻结了,而这个简单的许可证检查发生了,这真的很糟糕。
谢谢!
发布于 2012-07-25 22:27:29
笨蛋弄明白了: licenseCheck是异步的。
因此,只需启动它,然后使用接下来的几行代码打开应用程序,当响应到达时,这将中断应用程序(即,如果您设置了一个对话框,如果许可证无效,那么您的应用程序将开始加载,然后对话框出现,这将阻止所有内容)。
请确保在“不允许”情况下的所有代码的后续操作中包含finish()。
很棒的结果:应用程序在加载时间上损失了4到5秒。
发布于 2018-03-23 21:35:38
我可能是错的,但我感觉LVL服务器在调试模式下使用时非常慢和错误,也就是说,当我直接使用Android Studio在我的设备上安装应用程序并通过更改Google Play控制台中的响应来测试LVL实现时。实际上,在这种情况下,使用的是沙箱服务器,而不是Google Play生产服务器。
因此,为了对LVL实现有快速和正确的响应,我上传了一个测试apk (带有toast以查看LVL响应)到beta测试通道中的Google Play控制台。然后,我从Google Play下载了apk,这要归功于Google Play beta测试URL。LVL的响应速度快得多,也很可靠。
如果你证实了这一点,请告诉我。
发布于 2011-08-22 00:50:27
在您的活动中实现LicenseCheckerCallback
,并像这样调用它:
mLicenseChecker = new LicenseChecker(this, new MyPolicy(this, new AESObfuscator(getSalt(), getPackageName(), getDeviceId())), PUBLIC_KEY);
mLicenseChecker.checkAccess(new MyCheckerCallback());
mHandler = new Handler();
如果许可证无效,则发送到处理程序:在MyCheckerCallback
中
public void dontAllow() {
if (isFinishing()) {
return; //don't update UI when app is finishing
}
mHandler.post(new Runnable() {
public void run() {
//show toast message stating license is invalid
//redirect user to Market
//call finish()
}
});
}
https://stackoverflow.com/questions/7136786
复制相似问题