0

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

我已经从 Eclipse 导出了我的应用程序 pkg,将其上传到 Google Play 而不实际发布它,并将相同的 pkg 安装到我的 Android 手机上。当我去编辑配置文件>设置许可证测试响应时,我选择什么都没关系,手机上的应用程序总是得到“许可”响应。

设备和测试账号都是同一个谷歌账号。

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

我到底做错了什么?

4

1 回答 1

1

事实证明 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

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

于 2012-07-25T14:23:57.837 回答