2011-04-04 67 views
22

在實際顯示應用內購買的Android市場前端之前,如何檢索應用內結算項目的價格?目前,用戶只能在購買對話框中找到應用內商品的價格,並且我希望避免將價格存儲在應用中,以支持所有支持的貨幣。Android應用內結算項目價格

回答

16

現在可以使用Billing API v3。您可以通過getSkuDetails()方法獲取信息。例子是here

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; 
     } 
    } 
} 
+0

我能有這方面的信息官方證實? – 2011-12-13 15:30:25

+0

@SergeyGlotov不,不是,這是對「我能否對此信息進行官方確認?」的回覆。爲VitoShadow問題,而不是你的答案是100%正確的。我爲我的誤會道歉。 – EvilDuck 2012-02-08 08:27:46

16

如果您使用Trivial Drive示例幷包含IabHelper類,則需要將skus列表傳遞給queryInventoryAsync。

String[] moreSkus = {"SKU_ITEMONE", "SKU_ITEMTWO"}; 
    mHelper.queryInventoryAsync(true, Arrays.asList(moreSkus), mGotInventoryListener); 
+0

謝謝!它有很大的幫助 – vincentp 2014-11-06 07:29:48

+5

然後在'mGotInventoryListener'通過'String price = inventory.getSkuDetails(「SKU_ITEMONE」)。getPrice()獲得價格;'@CíceroMoura說 – remi 2015-08-03 16:01:01

3
String price = inventory.getSkuDetails("sku_of_your_product").getPrice(); 
+0

什麼是庫存? – 2016-09-02 18:00:09