2013-03-18 7 views
12

プロジェクトでv3サンプルファイルを変更しても問題ありません。しかし、私の友人は、wi-fiをオフにして飛行機モードをオンにするだけでコードをテストしました。これは、アプリ内広告枠を照会できなくなっているようです。アプリ内課金v3でネットワークに接続されていないアイテムや飛行機/飛行機のモードでアイテムを照会できない

// Listener that's called when we finish querying the items and subscriptions we own 
private final IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new IabHelper.QueryInventoryFinishedListener() { 
    @Override 
    public void onQueryInventoryFinished(IabResult result, Inventory inventory) { 

     if (result.isFailure()) { 
      // STOPS here and doesn't continue on with no network connection 
      return; 
     } 

     ...... 
    } 
}; 

私はそれを常にチェックするために、ネットワーク接続を持っている必要はないようにv3の店舗ローカルにキャッシュだと、最初の成功購入後と思いました。他の誰かがこの問題に遭遇しましたか?私は完全に明白な何かを逃しているか、これがうまくいかないかと思います。

+1

私はちょうどそれを試してみました。フライトモード/飛行機モード、またはWi-Fi接続を使用しているデバイスでのテストがオフになっている場合は、在庫を照会できません。他の人がこの問題に遭遇しているのではないかと疑問に思う – joelreeves

答えて

8

私は答えを見つけたかもしれないと思います。

Log.d(TAG, "Setup successful. Querying inventory."); 
mHelper.queryInventoryAsync(mGotInventoryListener); 

は、代わりに今私は私がのために照会したいというのが私のSKUの文字列配列のリストを渡している:

次V3のTrivialDriveExampleで、私はそうのようなmHelper.startSetup()関数内でqueryInventoryAsync関数を呼び出していました
List<String> skulist = new ArrayList<String>(); 
skulist.add("my_sku_name1"); 
skulist.add("my_sku_name2"); 
mHelper.queryInventoryAsync(true, skulist, mGotInventoryListener); 

次に、飛行モードをオンにしてテストしたところ、購入した商品をうまくクエリできました。以下のビットが働いていた私にとって

+0

私は同じ問題を抱えています。データを消去してもう一度試しても問題はありません。 しかし、アプリケーションを閉じて再オープンすると、同じ問題が発生しているようです。私はskyListを渡しています上記の指定..任意のアイデア? – spons

+0

これはネットワークに接続していても起こりますか? – joelreeves

+0

正確には、私は接続している.. – spons

1

...

mHelper.queryInventoryAsync(偽、mGotInventoryListener)。

代わりに

mHelper.queryInventoryAsync(mGotInventoryListener)。

は、私はそれはあなたの最初のアプローチでは、APIはのSKUが存在し、デフォルトごとに(単一のparamバージョン)かわからないそのリストを照会しようとしている、 a Error refreshing iventory (querying prices of items). (response: 6:Error)

+0

それは私の仕事ではない! :( –

2

問題がある別のリンクでそれを発見しました。飛行機モードでは、これは可能ではありません。これは、skusのリストをキャッシュしないか、または終了することを妨げる何らかの内部エラーがあるためです。

問い合わせるSKUのリストを送信することもできます(後で説明します)。または、sku listのオンラインクエリを抑制することもできます。あなたは(すなわち、あなたのアプリケーションでの価格を表示する)この情報が必要な場合は、それは可能性が高い依存jmrmb80

:に

helper.queryInventoryAsync(false, yourListener); 

クレジット。

(その機能の他のオーバーロードを参照するか、既に回答を与えています。購入したかどうかをチェックするためにSKUが必要ない可能性が高いので、jmrmb80の回答に行くでしょう。機内モードで

1

を購入を認識しないの問題は、私は離れて問題解決:ネットワークでない場合

final ArrayList<String> iabItemSkus = new ArrayList<String>(); 
iabItemSkus.add(MyGame.productID_FULLVERSION); 

// Disable SKU details if no network connection 
boolean checkSkuDetails = isWifiConnected() ? true : false; 

Gdx.app.log("IAB", "checkSkuDetails : " + checkSkuDetails); 

mHelper.queryInventoryAsync(checkSkuDetails, iabItemSkus, mGotInventoryListener); 

SKUの詳細情報を取得できませんが

関連する問題