在旧版本的应用内Biling中,我需要使用以下代码来获取IAP商品价格。
我无法在新版本中找到解决方法。请协助我在“ Google Play结算”中获取所有inapp项目的SKU详细信息
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;
}
}
}
答案 0 :(得分:0)
尝试使用此代码:
val params = SkuDetailsParams.newBuilder()
.setSkusList(/* skuList */)
.setType(/* skuType */)
BillingClient.querySkuDetailsAsync(params.build(), listener)
或者看看querySkuDetailsAsync方法的文档