6

我们有一个支持 In App Billing v3 的安卓应用。在我们的测试中,其他一切都运行良好,但我们发现也可以通过查询库存来获得不活跃的产品。

这就是我们在应用产品库存中查询 Google Play 的方式:

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!");
        }
    }
};

在这两个产品中,“premium”是不活跃的,但是IabHelper.QueryInventoryFinishedListener中的打印语句还是被执行了!

有没有办法只获得活跃的产品?

4

1 回答 1

0

AFAIK,您可以从查询列表中删除 sku

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

这取决于您的代码,但有点道理,因为您无法使用空的“moreSku”列表查询所有可用产品,您必须选择您真正想要的;无论如何,这取决于您的代码。希望它可以提供帮助。

于 2015-08-11T08:45:31.357 回答