Android-приложение для биллинга - PullRequest
23 голосов
/ 04 апреля 2011

Как можно узнать цену биллингового элемента в приложении перед тем, как на самом деле отобразить интерфейс Android-рынка для покупки в приложении?В настоящее время похоже, что пользователь может узнать цену только для элемента в приложении в диалоговом окне покупки, и я хотел бы избежать сохранения цен в приложении для всех поддерживаемых валют.

Ответы [ 3 ]

17 голосов
/ 13 марта 2013

Если вы используете пример Trivial Drive и включили класс IabHelper, вам нужно передать список skus в queryInventoryAsync.

    String[] moreSkus = {"SKU_ITEMONE", "SKU_ITEMTWO"};
    mHelper.queryInventoryAsync(true, Arrays.asList(moreSkus), mGotInventoryListener);
17 голосов
/ 05 июня 2011

Теперь возможно с 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;
        }
    }
}
2 голосов
/ 27 августа 2014
String price = inventory.getSkuDetails("sku_of_your_product").getPrice();
...