Как скрыть неактивные продукты из биллинга приложений?

У нас есть приложение для Android, поддерживающее 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 все еще выполнен!

Есть ли способ получить только активные продукты?

AFAIK, вы можете удалить sku из списка запросов

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

Это зависит от вашего кода, но имеет смысл, поскольку вы не можете запрашивать все доступные продукты с пустым списком «moreSku», вам нужно выбрать то, что вы действительно хотите; Это все равно зависит от вашего кода. Надеюсь, это поможет.