事实证明 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
我希望我能抓住这些错误,因为它们通常不是用户的错,但用户却被引导到“你没有购买这个应用程序”对话框。