• <i id='RjL9B'><tr id='RjL9B'><dt id='RjL9B'><q id='RjL9B'><span id='RjL9B'><b id='RjL9B'><form id='RjL9B'><ins id='RjL9B'></ins><ul id='RjL9B'></ul><sub id='RjL9B'></sub></form><legend id='RjL9B'></legend><bdo id='RjL9B'><pre id='RjL9B'><center id='RjL9B'></center></pre></bdo></b><th id='RjL9B'></th></span></q></dt></tr></i><div id='RjL9B'><tfoot id='RjL9B'></tfoot><dl id='RjL9B'><fieldset id='RjL9B'></fieldset></dl></div>
    <legend id='RjL9B'><style id='RjL9B'><dir id='RjL9B'><q id='RjL9B'></q></dir></style></legend>

        <bdo id='RjL9B'></bdo><ul id='RjL9B'></ul>

        <small id='RjL9B'></small><noframes id='RjL9B'>

      1. <tfoot id='RjL9B'></tfoot>

        Android:应用内计费 V3 超时返回哪个响应代码?

        Android: Which response code does in-app billing V3 return upon timeout?(Android:应用内计费 V3 超时返回哪个响应代码?)

      2. <tfoot id='dgLX5'></tfoot>
          <bdo id='dgLX5'></bdo><ul id='dgLX5'></ul>
          <i id='dgLX5'><tr id='dgLX5'><dt id='dgLX5'><q id='dgLX5'><span id='dgLX5'><b id='dgLX5'><form id='dgLX5'><ins id='dgLX5'></ins><ul id='dgLX5'></ul><sub id='dgLX5'></sub></form><legend id='dgLX5'></legend><bdo id='dgLX5'><pre id='dgLX5'><center id='dgLX5'></center></pre></bdo></b><th id='dgLX5'></th></span></q></dt></tr></i><div id='dgLX5'><tfoot id='dgLX5'></tfoot><dl id='dgLX5'><fieldset id='dgLX5'></fieldset></dl></div>

            <legend id='dgLX5'><style id='dgLX5'><dir id='dgLX5'><q id='dgLX5'></q></dir></style></legend>
                    <tbody id='dgLX5'></tbody>
                1. <small id='dgLX5'></small><noframes id='dgLX5'>

                  本文介绍了Android:应用内计费 V3 超时返回哪个响应代码?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

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

                  Which response status code(s) will the Google Play In-App Billing Serv{ice,er} V3 return upon a network timeout condition? Is this uniform amongst all of its functions?

                  推荐答案

                  我将在这里描述我的发现.我已经在安装了全功能 GP(GP Store V3.10.10、GP Services 2.0.12、G Services Framework 4.1.2)的 AVD 上测试了这一点,方法是拔掉主机的插头.

                  I will describe my findings here. I have tested this on an AVD with a fully featured GP installed (GP Store V3.10.10, GP Services 2.0.12, G Services Framework 4.1.2), by pulling the host's plug.

                  • 如果可能,getPurchases() 方法会返回一个缓存的结果(请注意,我们不是谈论的是服务之外的缓存 这里只是直接调用 getPurchases).当然,这意味着几乎总是会得到一个缓存的结果,除非由于本地数据丢失而重新初始化服务 - 这种情况不太可能并且通常不需要在应用级别.
                  • consumePurchase() 方法将在假定的内部网络超时 20 秒后返回整数值 6 (BILLING_RESPONSE_RESULT_ERROR)(所以在结果之前增加一点时间代码被调用者看到).尽管 BILLING_RESPONSE_RESULT_ERROR 被描述为 API 操作期间的致命错误,但我还是怀疑这一点,因为这里没有其他错误代码有意义;不幸的是,fatal 这个词对于诸如超时之类的临时情况来说仍然有些不合适.
                  • getSkuDetails() 的行为似乎与 consumePurchase() 类似.更新:现在有证据表明 getSkuDetails() 也可以访问本地服务中的缓存信息.
                  • 如果服务已经知道该项目,那么看起来 getBuyIntent() 在没有连接的情况下也能正常工作.这解释了 Hartok 看到空白 GP 购买屏幕的原因:在没有连接的情况下从 IAB V3 获得购买意图不是问题.
                  • The getPurchases() method returns a cached result if possible (please note that we're not talking about a cache outside of the Service here but a direct call of getPurchases). Of course, this means that one will almost always get a cached result except when the Service is being re-initialized due to the loss of local data -- a case which is not very likely and often needs not be treated in special ways on the application level.
                  • The consumePurchase() method will return the integer value 6 (BILLING_RESPONSE_RESULT_ERROR) after a presumed internal net timeout of 20 seconds (so add a bit of time until the result code is seen by the caller). I was suspecting this despite BILLING_RESPONSE_RESULT_ERROR being described as a Fatal error during the API action because no other error code would make sense here; unfortunately, the word fatal is still somewhat inappropriate for a temporary condition such as a timeout.
                  • getSkuDetails() appears to behave just like consumePurchase(). Update: There's now evidence that getSkuDetails() can access cached information within the local service, too.
                  • It looks as if getBuyIntent() works fine without connectivity if the item is already known to the service. This explains why Hartok sees a blank GP purchase screen: It's not a problem to get a buy intent from the IAB V3 without connectivity.

                  结论:In-App Billing Service V3 似乎可以使用内部缓存和 20 秒的服务器连接超时.对于本地缓存无法解决的服务器通信错误,使用响应代码 6.

                  Conclusion: The In-App Billing Service V3 appears to work with an internal cache and a server connection timeout of 20 seconds. For server communication errors which the local cache cannot resolve, response code 6 is used.

                  这篇关于Android:应用内计费 V3 超时返回哪个响应代码?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  Android - Is it possible to get install referrer programmatically(Android - 是否有可能以编程方式安装引荐来源网址)
                  How to sign an APK with more than one certificate?(如何使用多个证书签署 APK?)
                  versionCode vs versionName in Android Manifest(Android Manifest 中的 versionCode 与 versionName)
                  What does this Google Play APK publish error message mean?(这个 Google Play APK 发布错误消息是什么意思?)
                  Lost my keystore for uploaded app on android market(丢失了我在 android 市场上上传的应用程序的密钥库)
                  App on Google Play always shows quot;Updatequot; instead of open(Google Play 上的应用程序总是显示“更新;而不是打开)

                        <i id='fzPNH'><tr id='fzPNH'><dt id='fzPNH'><q id='fzPNH'><span id='fzPNH'><b id='fzPNH'><form id='fzPNH'><ins id='fzPNH'></ins><ul id='fzPNH'></ul><sub id='fzPNH'></sub></form><legend id='fzPNH'></legend><bdo id='fzPNH'><pre id='fzPNH'><center id='fzPNH'></center></pre></bdo></b><th id='fzPNH'></th></span></q></dt></tr></i><div id='fzPNH'><tfoot id='fzPNH'></tfoot><dl id='fzPNH'><fieldset id='fzPNH'></fieldset></dl></div>
                          <tbody id='fzPNH'></tbody>
                        • <bdo id='fzPNH'></bdo><ul id='fzPNH'></ul>
                          • <legend id='fzPNH'><style id='fzPNH'><dir id='fzPNH'><q id='fzPNH'></q></dir></style></legend>

                            <small id='fzPNH'></small><noframes id='fzPNH'>

                          • <tfoot id='fzPNH'></tfoot>