2013-03-18 12 views
12

öğeleri sorgulamak mümkün. Ancak arkadaşım sadece wi-fi'yi kapatıp uçak modunu açarak kodu test etti. Bu, uygulama içi envanteri sorgulayamama sonucunu doğurmuş gibi görünüyor. içi faturalandırma v3 ağ bağlantısı olmadan ya da benim proje çalışıyor ile değiştirilmesinde v3 örnek dosyası üzerinden gitmek uçak/uçuş modunda

// 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; 
     } 

     ...... 
    } 
}; 

düşündüğümden o önbellek bulunuyor lokal içinde her zaman kontrol etmek için bir ağ bağlantınız yoktu ki mağazaları v3 bir başlangıç ​​başarılı satın aldıktan sonra. Bu konuya giren başka biri var mı? Umarım tamamen belli olan bir şeyi özlüyorum ya da işte böyle olması gerekiyorsa.

+1

..Uçuş modu/uçak modu veya kapatılan bir wi-fi bağlantısı kullanan bir cihazda test yapıyorsanız, envanteri sorgulayamıyorum. Bu soruna – joelreeves

cevap

8

Bence cevabı bulmuş olabilirim.

: şimdi ben sorgulamak istiyorum benim SKUs bir dize dizisi listesini geçiyorum yerine

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

: şöyle V3 TrivialDriveExample ben mHelper.startSetup (içinde queryInventoryAsync işlevini çağırıyordu) işlevini aşağıdaki

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

Daha sonra uçuş modunu açarak test ettim ve alımlarımı sorgulayabildim! Aşağıdaki bit çalıştı Benim için

+0

başka birisinin koşması halinde merak ediyorum Aynı sorunu yaşıyorum. Sadece mobil cihazım bağlantı ile gerçekleşiyor. Verileri temizler ve tekrar denersem sorun olmaz. Ancak, uygulama kapatıldığında ve yeniden açıldığında aynı sorun var gibi görünüyor. Yukarıda belirtildiği gibi skyList geçiyorum .. Herhangi bir fikir? – spons

+0

Yani bir ağ bağlantınız olduğunda bile oluyor? – joelreeves

+0

Tam olarak, ben bir bağlantı var .. – spons

2

Sorun başka linkte buldum. Uçak modunda bu mümkün değildir - ya bir skus listesi önbelleği olmadığından ya da bitirmeyi engelleyen bir iç hata var.

Sorgulamak istediğiniz SKU'ların bir listesini gönderebilirsiniz (daha sonra yaptığınız gibi) ya da sku listesi için çevrimiçi sorguyu sadece siz tıklayabilirsiniz. için

helper.queryInventoryAsync(false, yourListener); 

kredisi: Bu bilgileri (uygulamanızda yani görüntülendiği fiyatları) gerekirse jmrmb80

Daha olasılıkla bağlıdır.

(Bu işlev için veya diğer yanıtlar için diğer aşırı yüklenmelere bakın. Büyük olasılıkla bir satın alma yapılıp yapılmadığını kontrol etmek için SKU'lara ihtiyacınız yoktur, bu yüzden jmrmb80 cevabı için giderdim - benim için bu çözüldü uçak modu

1

bir satın alma tanımama sorunu ben uzağa sorunu çözüldü: ağ değilse

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 bilgi almak değil sadece denedim