Android应用内结算项目价格

Psy*_*ris 24 android billing in-app-purchase

在实际显示应用内购买的Android市场前端之前,如何检索应用内结算项目的价格?目前看起来用户只能在购买对话框中找到应用内商品的价格,并且我希望避免将所有支持货币的价格存储在应用程序中.

Ser*_*tov 17

现在可以使用Billing API v3.您可以通过getSkuDetails()方法获取信息.示例在这里.

ArrayList skuList = new ArrayList();
skuList.add("premiumUpgrade"); 
skuList.add("gas");
Bundle querySkus = new Bundle();
querySkus.putStringArrayList(“ITEM_ID_LIST”, skuList);

Bundle skuDetails = mService.getSkuDetails(3, getPackageName(), “inapp”, querySkus);

int response = skuDetails.getInt("RESPONSE_CODE");
if (response == 0) {
    ArrayList responseList = skuDetails.getStringArrayList("DETAILS_LIST");

    for (String thisResponse : responseList) {
        JSONObject object = new JSONObject(thisResponse);
        String sku = object.getString("productId");
        String price = object.getString("price");
        if (sku.equals(“premiumUpgrade”)) {
            mPremiumUpgradePrice = price;
        } else if (sku.equals(“gas”)) { 
            mGasPrice = price;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 17

如果您使用的是Trivial Drive示例并包含IabHelper类,则需要将skus列表传递给queryInventoryAsync.

    String[] moreSkus = {"SKU_ITEMONE", "SKU_ITEMTWO"};
    mHelper.queryInventoryAsync(true, Arrays.asList(moreSkus), mGotInventoryListener);
Run Code Online (Sandbox Code Playgroud)

  • 然后在`mGotInventoryListener`中通过`String price = inventory.getSkuDetails("SKU_ITEMONE")得到价格.getPrice();`@ @CíceroMoura说 (5认同)