2013-06-17 7 views
18

私はそれは常に発生するわけではありませんiventoryをリフレッシュするエラー(アイテムの価格を問い合わせる)。 (レスポンス:6:エラー)

In-app billing v3 unable to query items without network connection or in airplane/flight mode

とまったく同じ問題に直面しています。携帯電話を飛行機モードに切り替えるか、無線LANをオフにして、数時間待ってから問題が発生するだけです。次のエラーメッセージが表示されます。

iventoryを照会できませんでした:IabResult:エラーが発生しました (アイテムの価格をクエリしています)。 (レスポンス:6:エラー)

者が問題を解決するために

List<String> skulist = new ArrayList<String>(); 
skulist.add("my_sku_name1"); 
skulist.add("my_sku_name2"); 
mHelper.queryInventoryAsync(true, skulist, mGotInventoryListener); 

を使用して提案しました。

しかし、それは私のために動作しません。同じ問題がまだ発生します。

この問題の回避策はありますか?ありがとう。

+2

私は(別のSOの質問から)IabHelperクラスで唯一の非常にぞんざい親しみを持っているので、これは、本質的に暗闇の中で刺しています。 'mHelper.queryInventoryAsync(false、null、mGotInventoryListener);'(または、同様に、 'mHelper.queryInventoryAsync(false、mGotInventoryListener);)の代わりにこの呼び出しを試してください。 – jerry

+0

あなたはあなたの問題を解決しましたか? –

+0

ネットワーク接続が失敗したときに、以前に格納されていたアプリ内購入ステータスを読み込むだけです。 –

答えて

8

ジェリーは彼のコメントで示唆したように、あなたは

mHelper.queryInventoryAsync(偽、mGotInventoryListener)を呼び出すことによって、この問題を回避することができます。

代わりに

mHelper.queryInventoryAsync(mGotInventoryListener)。

私のデバイスから(1日以上)すべてのネットワーク接続を無効にしており、その単一のパラメータ変更で問題を確実に再現/修正できます。購入自体が、価格のようなSKUの詳細よりも、アプリ内課金サービスによって長く(無制限に)キャッシュされるように見えます。

+1

しかし、あなたが持っているかもしれないskuDetailsをフェッチしないでください。心に留めておきます。 – JacksOnF1re

+0

それは私の仕事ではありません! ------ mHelper.queryInventoryAsync(true、skuList、mGot)-------さらにmHelper.queryInventoryAsync(false、skuList、mGot)。 –

3

Google Playには、キャッシュされたインベントリ項目の有効期限を持っているように見えます。これは、Google Playアプリの仕組みに関する実装の詳細です。

エラー6がBILLING_RESPONSE_RESULT_ERRORとして定義されます。

インターネット接続がなくても購入用のインベントリを提供することが重要な場合は、の最後に返された結果をにキャッシュしておき、クエリに失敗した場合に使用してください。

しかし、購買はまた、このようなシナリオでは動作しないので、なぜ気にしますか?

+0

リンクされた質問に基づいて、私はOPの問題を、すでに購入されたアイテムを表示するものとして読んでいます。その場合は、自分でキャッシュする方が便利です(実際に結果が失効したと仮定して、それが真実かどうかはわかりません)。 – jerry

関連する問題