5

In old version of in app biling i ised to get the IAP item price using the below code.

I am unable to find a way for this in new version. Kindly assist me in the way to get SKU details of all my inapp items in "Google Play Billing"

    ArrayList<String> skuList = new ArrayList<String>();
    Collections.addAll(skuList, SKU_GEM);
    Collections.addAll(skuList, SKU_COMBO);
    Collections.addAll(skuList, SKU_SALE);

    for(String s : skuList){ 
       Log.d("IabHelper", "skuList from list : " + s);
    }

    String[][] itemPrice = new String[3][]; 

    itemPrice[0]=new String[SKU_GEM.length]; 
    itemPrice[1]=new String[SKU_COMBO.length];
    itemPrice[2]=new String[SKU_SALE.length];

    Bundle querySkus = new Bundle();
    querySkus.putStringArrayList("ITEM_ID_LIST", skuList);

    Bundle skuDetails = mService.getSkuDetails(3,packageName, "inapp", querySkus); 

     if (response == 0) {
        ArrayList<String> responseList = skuDetails.getStringArrayList("DETAILS_LIST");
        Log.d("IabHelper", "responseList  : " + responseList);
        for (String thisResponse : responseList) {
            JSONObject object = new JSONObject(thisResponse);
            String sku = object.getString("productId");
            String price = object.getString("price");

            for (int i = 0; i < SKU_GEM.length; i++) {
                if(sku.contains(SKU_GEM[i])) {
                    itemPrice[0][i]=price;
                    Log.d("IabHelper", "Price of " + SKU_GEM[i] + " " + "itemPrice[0][" + i + "]" + " : " + price);
                    break;
                }
            }

            for (int i = 0; i < SKU_COMBO.length; i++) {
                if(sku.contains(SKU_COMBO[i])) {
                    itemPrice[1][i]=price;
                    Log.d("IabHelper", "Price of " + SKU_COMBO[i] + " " + "itemPrice[1][" + i + "]" + " : " + price);
                    break;
                }
            }

            for (int i = 0; i < SKU_SALE.length; i++) {
                if(sku.contains(SKU_SALE[i])) {
                    itemPrice[2][i]=price;
                    Log.d("IabHelper", "Price of " + SKU_COMBO[i] + " " + "itemPrice[2][" + i + "]" + " : " + price);
                    break;
                }
            }


        }
iappmaker
  • 2,945
  • 9
  • 35
  • 76

1 Answers1

0

Try to use this code:

val params = SkuDetailsParams.newBuilder()
                .setSkusList(/* skuList */)
                .setType(/* skuType */)
BillingClient.querySkuDetailsAsync(params.build(), listener)

OR have a look the document of the querySkuDetailsAsync method

John Le
  • 1,116
  • 9
  • 12