Android LVL在测试时总是响应'LICENSED'

时间:2012-07-25 14:23:58

标签: android google-play android-lvl

我有一个Android应用程序(使用PhoneGap的HTML5应用程序),我想用Android的LVL验证进行测试。

我已从Eclipse导出我的应用程序pkg,将其上传到Google Play而未实际发布,并将相同的pkg安装到我的Android手机上。当我去编辑个人资料>设置许可证测试响应,无论我选择什么,手机上的应用程序始终会获得“许可”响应。

设备和测试帐户都是相同的Google帐户。

当我附加调试器时,控制台会列出许多来自LicenseChecker的日志,

我究竟能做错什么?

1 个答案:

答案 0 :(得分:0)

原来,Google Play应用更新中存在一个错误。许可证检查超时,因此在我的情况下,默认选择是允许用户以任何方式访问。

http://code.google.com/p/marketlicensing/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary&groupby=&sort=&id=44

如果您删除该应用的应用数据,您自己的测试应用将重新建立与Google Play的连接,您设置的任何测试响应几乎都会立即成为应用在设备上收到的响应。

事实上,您甚至不需要遵循有关将完全相同的pkg上传到Google Play的指南,以便获得这些测试回复。只需使用相同的密钥即可。

注意: 在我上面的当前设置中,使用ServerManagedPolicy,应用程序可以很好地区分LICENSED(触发Allow())和UNLICENSED(触发DontAllow())。 但是,如果存在错误,则applicationError()回调不能很好地处理所有代码,或者从未向其提供某些代码。

ERROR_NOT_MARKET_MANAGED触发ApplicationError()就好了。 但是这两个错误将应用程序重定向到DontAllow: ERROR_SERVER_FAILURE ERROR_CONTACTING_SERVER

我希望我能抓住这些错误,因为它们通常不是用户的错,但是用户被引导到“你没有买这个应用程序”对话框。