现在可以使用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