2

アプリに 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 によるローカル キャッシングによるものでしょうか。以前にこの問題に遭遇した人はいますか。何がうまくいかないのか、どうすれば修正できるのか、誰か教えてください。

4

1 に答える 1

3

答えは、アプリ内課金ドキュメント http://developer.android.com/google/play/billing/api.html#consumeにありました

これは、ローカル キャッシングが原因でした。Google Play クライアントはアプリ内課金情報をデバイス上でローカルにキャッシュするようになったため、バージョン 3 API を使用して、getPurchases 呼び出しなどにより、この情報をより頻繁にクエリできます。以前のバージョンの API とは異なり、多くのバージョン 3 API 呼び出しは、Google Play へのネットワーク接続ではなく、キャッシュ ルックアップによって処理されるため、API の応答時間が大幅に短縮されます。これが、所有アイテムではなく、消費機能の応答に応じて購入アイテムを授与することを推奨する理由です。

于 2013-05-27T04:29:23.237 に答える