Android:在超时后,应用内结算V3会返回哪些响应代码?

时间:2013-02-05 10:10:43

标签: android google-play in-app-billing

Google Play应用内结算服务{ice,er} V3会在网络超时情况下返回哪些响应状态代码?它的所有功能都是统一的吗?

1 个答案:

答案 0 :(得分:8)

我将在此处描述我的发现。我已经在装有全功能GP的AVD上测试了这个(GP Store V3.10.10,GP Services 2.0.12,G Services Framework 4.1.2),通过拔出主机插头。

  • getPurchases()方法会在可能的情况下返回缓存结果(请注意,我们在此处讨论服务之外的缓存但是< em>直接调用getPurchases)。当然,这意味着一个人几乎总是得到一个缓存的结果,除非由于本地数据的丢失而重新初始化服务 - 这种情况不太可能并且通常不需要以特殊方式对待应用程序级别。
  • 在假定的内部净超时为20秒后,consumePurchase()方法将返回整数值6(BILLING_RESPONSE_RESULT_ERROR)(因此在调用者看到结果代码之前添加一点时间)。尽管BILLING_RESPONSE_RESULT_ERROR被描述为Fatal error during the API action,但我怀疑这是因为没有其他错误代码在这里有意义;不幸的是,致命这个词仍然不适合临时条件,例如超时。
  • getSkuDetails()似乎表现得像consumePurchase()更新:现在有证据表明getSkuDetails()也可以访问本地服务中的缓存信息。
  • 如果服务已知该项,则getBuyIntent()看起来好像没有连接。这就解释了为什么Hartok看到一个空白的GP购买屏幕:没有连接就从IAB V3获得购买意图不是问题。

结论:应用程序内结算服务V3似乎与内部缓存和服务器连接超时20秒一起使用。对于本地缓存无法解析的服务器通信错误,使用响应代码6。