Search code examples
androidtextviewin-app-billing

How to get a SKU price and display it in a TextView


I need to retrieve the price of my InApp Purchase and display it as a Title in my Card Layout.

This is how the card looks like, instead of "sku price", I need to have the actual price.

this is the card

I have only this IAP so I shouldn't need an array or a list.

For implementing in App Billing I followed Android Developers - In App Billing Guide

So far I tried to write this inside my onQueryInventoryFinished() method, without any luck.

IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new IabHelper.QueryInventoryFinishedListener() {
    @Override
    public void onQueryInventoryFinished(IabResult result, Inventory inv) {
        //have we been disposed of in the meantime? if so, quit
        if (mHelper == null) return;

        //is it a failure?
        if(result.isFailure()) {
            alert("Failed to query Inventory: " + result);
            return;
        }

        String skuPrice = inv.getSkuDetails(SKU_PREMIUM).getPrice();
        ((TextView)findViewById(R.id.card_buy_title)).setText(skuPrice);

        //do we have the premium upgrade?
        Purchase premiumPurchase = inv.getPurchase(SKU_PREMIUM);
        isPremium = (premiumPurchase != null && verifyDeveloperPayload(premiumPurchase));
    }
};

As far as I was able to understand this thing I did should get the price of already purchased items. So maybe that is why it does not work.

Can anyone of you point me in the right direction?


Solution

  • In your mHelper setup you have to query all inventory by calling

    mHelper.queryInventoryAsync(true, allSkus, null, mGotInventoryListener);
    

    where allSkus is a list of all skues.

    Check IabHelper.