Могу ли я в IAB Google получить название продукта и цену до того, как вызову метод launchpurchaseflow?

У меня есть программа, которая устанавливает диалоговое окно с предупреждением, которое спрашивает: «Хотите ли вы приобрести «НАЗВАНИЕ» по «ЦЕНЕ»».

Я знаю, что в библиотеке Google IAB есть вызов getSku(), но он доступен только после покупки товара. Есть ли способ получить эти две переменные перед покупкой? Спасибо.

Возможно, я видел элемент, который запрашивает набор артикулов, в котором перечислены все элементы, но я могу ошибаться


person kevinl    schedule 11.01.2013    source источник


Ответы (2)


используйте этот метод в IABHelper:

 List<String> moreSkus = new ArrayList<String>();
  moreSkus.add("sku1");
  moreSkus.add("sku2");              

  mHelper.queryInventoryAsync(true, moreSkus, mGotInventoryListener);

Я тестирую, все работает нормально, вы можете добавить sku inapp или подтипа в список и вернуть все детали в invenroty

person openkava    schedule 05.05.2013
comment
Будет ли он работать с IAB V2. Я получаю сообщение об ошибке, например, queryInventoryAsync не найден. Если это невозможно, дайте мне знать, есть ли другой способ получить информацию о продукте с помощью V2. - person Ganesh; 12.06.2014

нашел решение для этого. в первую очередь вам понадобится идентификатор артикула/продукта.

public void getProductDetails(String sku) throws RemoteException, JSONException {
    logDebug("getProductDetails - " + sku);

    ArrayList<String>  skuList = new ArrayList<>();
    // Add the specific sku
    skuList.add(sku);

    if (sku != null) {
         Bundle querySkus = new Bundle();
         querySkus.putStringArrayList(GET_SKU_DETAILS_ITEM_LIST, skuList);
         Bundle skuDetails = mService.getSkuDetails(3, mContext.getPackageName(),  ITEM_TYPE_INAPP, querySkus);
         ArrayList<String> responseList = skuDetails.getStringArrayList(RESPONSE_GET_SKU_DETAILS_LIST);

         for (String thisResponse : responseList) {
             SkuDetails d = new SkuDetails(thisResponse);
             logDebug("Looking at sku details: " + d);
             purchaseTitle = d.getTitle(); // these are set as variables so you can call them
             purchasePrice = d.getPrice(); // whenever you want
         }
    }
}
person kevinl    schedule 11.01.2013
comment
я использую версию 3 для выставления счетов в приложении, и мне нужно получить информацию о продукте по подписке, для чего я сделал в функции mGotInventoryListener if (inventory.getSkuDetails(SKU_INFINITE_SUBSCRIPTION) != null) { Log.e(TAG, product details price=== = + inventory.getSkuDetails(SKU_INFINITE_SUBSCRIPTION).getPrice()); } Но я получаю данные как null - person AkashG; 06.01.2014