2013-08-09 9 views
5

Wir haben eine Android-App, die In App Billing v3 unterstützt. In unseren Tests funktionierte alles andere gut, aber wir fanden heraus, dass inaktive Produkte auch durch Abfragen des Inventars erhalten werden konnten.Wie blenden Sie die inaktiven Produkte in der App-Abrechnung aus?

Dies ist, wie wir unsere Google in App-Produkte Inventar Spielen Abfrage:

ArrayList<String> moreSkus = new ArrayList<String>(); 
moreSkus.add("gas"); 
moreSkus.add("premium"); 
mHelper.queryInventoryAsync(true, moreSkus, mGotInventoryListener); 

... 

IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new IabHelper.QueryInventoryFinishedListener() { 
    public void onQueryInventoryFinished(IabResult result, final Inventory inventory) { 
     if(inventory.hasDetails("premium")) { 
      System.out.println("Inactive product is also visible to app!"); 
     } 
    } 
}; 

Unter den beiden Produkten "Premium" inaktiv ist, aber die print-Anweisung in IabHelper.QueryInventoryFinishedListener ausgeführt wurde noch!

Gibt es eine Möglichkeit, nur aktive Produkte zu erhalten?

+0

Wenn Sie wissen, dass Premium inaktiv ist, warum fragen Sie es ab? – Michael

Antwort

0

AFAIK, können Sie die sku aus der Abfrageliste entfernen

//moreSkus.add("premium"); //don't query this item 

Diese auf Ihren Code hängt aber irgendwie macht Sinn, da man nicht alle verfügbaren Produkte mit einem leeren „moreSku“ Liste abfragen können, müssen Sie wählen Sie, was Sie wirklich wollen; Es hängt sowieso von deinem Code ab. Ich hoffe, es kann helfen.