Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android IAB V3查询拥有的项目返回正值,但在消费时返回未拥有的项目_Android_In App Billing - Fatal编程技术网

Android IAB V3查询拥有的项目返回正值,但在消费时返回未拥有的项目

Android IAB V3查询拥有的项目返回正值,但在消费时返回未拥有的项目,android,in-app-billing,Android,In App Billing,我已经在我的应用程序中安装了android IAB V3。在购买和消费物品后立即查询自有物品时,IABHelper返回我仍然拥有该物品。但在调用consume时,它返回的是未拥有的项目。我在下面给出我的logcat输出 04-19 15:57:43.668: D/IabHelper(2757): Starting async operation: refresh inventory 04-19 15:57:43.678: D/IabHelper(2757): Querying owned ite

我已经在我的应用程序中安装了android IAB V3。在购买和消费物品后立即查询自有物品时,IABHelper返回我仍然拥有该物品。但在调用consume时,它返回的是未拥有的项目。我在下面给出我的logcat输出

04-19 15:57:43.668: D/IabHelper(2757): Starting async operation: refresh inventory
04-19 15:57:43.678: D/IabHelper(2757): Querying owned items...
04-19 15:57:43.688: D/IabHelper(2757): Package name: com.games.mygame
04-19 15:57:43.688: D/IabHelper(2757): Calling getPurchases with continuation token: null
04-19 15:57:43.728: D/IabHelper(2757): Owned items response: 0
04-19 15:57:43.758: D/IabHelper(2757): Sku is owned: com.games.pack1
04-19 15:57:43.768: D/IabHelper(2757): Continuation token: null
04-19 15:57:43.768: D/IabHelper(2757): Querying SKU details.
04-19 15:57:43.838: D/IabHelper(2757): Got sku details: SkuDetails:{"title":"Coin Pack 1 (My Game)","price":"Rs. 105.69","type":"inapp","description":"Pack of 50000 coins.","productId":"com.games.pack1"}
04-19 15:57:43.838: D/IabHelper(2757): Ending async operation: refresh inventory
04-19 15:57:46.931: D/IabHelper(2757): Ending async operation: 
04-19 15:57:46.931: D/IabHelper(2757): Starting async operation: consume
04-19 15:57:46.931: D/IabHelper(2757): Consuming sku: com.games.pack1, token: wykaaffjpwmehhfdkgmzsbpb.AO-J1OxWZjidethjntgfks3C1tpo6TfiMgWyAc8ycTZWsr7UcaHidKIFRaH-K6L_aa2SYGFc3mq8kLBVajj3mtXQcw8oy8-GAT8aSBLJA_aP3AsnjEKSQ1Ot0OqTBDKJWRduiz
04-19 15:57:47.642: D/IabHelper(2757): Error consuming consuming sku com.games.pack1. 8:Item not owned
04-19 15:57:47.642: D/IabHelper(2757): Ending async operation: consume

我必须等几分钟才能再次购买此商品。这是因为google play的本地缓存。以前有人遇到过这个问题吗。有谁能告诉我哪里出了问题,以及如何解决问题。

答案就在应用内计费文档中

这是由本地缓存引起的。
由于Google Play客户端现在在设备上本地缓存应用内计费信息,因此您可以使用版本3 API更频繁地查询此信息,例如通过getPurchases调用。与以前版本的API不同,许多版本3 API调用将通过缓存查找而不是通过与Google Play的网络连接提供服务,这大大加快了API的响应时间。这就是为什么他们会根据消费函数的响应而不是根据拥有的物品来推荐购买的物品。

getPurchases是哪个类的方法?getAllPurchases是来自Google文档中IAB计费示例项目(普通驱动器)中Inventory.java类的调用,位于: