应用内购买-离线赔率

时间:2018-07-29 09:07:01

标签: android in-app-purchase offline

我正在使用Android In-App Billing v3 Library,但我认为这不是该库的怪癖。

我处于内部发布阶段,正在测试手机在没有互联网连接的情况下脱机时发生的情况。

我的程序需要知道有哪些IAP(应用内购买)以及已购买了哪些IAP。这是通过功能getPurchaseListingDetailslistOwnedProducts完成的。

我一直在存储在SharedPreference中购买的商品,所以如果我离线,我会知道它们是什么。

有一些IAP,所以我尽可能地使代码保持最新,并在程序中包含列表,以防万一用户离线。在此程序内数据中,我不存储价格,而仅注明用户必须在线才能知道这一点。

但是离线时会出现一些怪癖。

  1. 有时getPurchaseListingDetails引发了一个错误,该错误触发了onBillingError并引发了错误BILLING_RESPONSE_RESULT_ERROR。即使我在try-catch中没有包含getPurchaseListingDetails的函数,也没有执行其他代码。
  2. 有时getPurchaseListingDetails正确地从内存中调用了所有IAP,即使我不在线也是如此。 它怎么知道的?这是当前的状况,即使我已经卸载,清除了程序缓存中的所有内容,我也无法将其恢复为(1)。
  3. 发生(1)时,我不知道是否可以调用listOwnedProducts,因为引发错误时,此后它不执行任何代码。 listOwnedProducts具有相同的功能。
  4. 发生(2)时,即使我不在线,也会调用listOwnedProducts并从内存中检索购买的商品。目前,它对我的​​SharedPreference一无所知。

任何人都可以解释吗?我目前正在为这两种可能性编写代码,但这一切都非常令人困惑。

当您离线时,IAP和购买的商品是否存储在内存中,而这些功能又落在一些我不知道的秘密SharedPreference上?

注意:我不知道这是否重要,但是由于要通过PC进行调试,因此手机通常通过USB连接到PC。

0 个答案:

没有答案