Как получить информацию о SKU всех моих товаров в приложении в Google Play Billing

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

Я не могу найти способ для этого в новой версии. Пожалуйста, помогите мне получить информацию о артикулах всех моих встроенных приложений в разделе "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;
                }
            }


        }



Ответы (1)


Попробуйте использовать этот код:

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

ИЛИ просмотрите документ метод querySkuDetailsAsync

person John Le    schedule 28.12.2019