現在可以使用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;
}
}
}
非常感謝你的帖子,它的工作原理!但是我有一個問題:getSkuDetails()返回本地貨幣還是開發者的默認價格集合,這是美元?在我看來,無論我的系統和Google Play帳戶是否爲法國,它都只返回美元。你知道這將被記錄在哪裏嗎?我似乎無法爲此找到足夠的文檔。 – sammiwei 2013-04-03 00:29:38
@sammiwei對不起,我不知道。 – 2013-04-03 07:38:02
'price_currency_code'在skuDetails包中給出貨幣 – 2017-01-24 23:51:35