Android IAP:处理已购买的商品

时间:2014-09-13 08:04:34

标签: android error-handling in-app-purchase

我正在尝试在应用内购买Android。我正在使用官方文档和util(Base64等)。我正在使用托管项目。 我在哪里以及如何处理已经购买的物品? (我将布尔值设置为true并将其保存到sharedpreferences,但如果我删除并安装应用程序,则共享偏好将丢失。)

现在,如果我点击" Buy-Button"我得到"错误7:项目已经拥有"。 购买的商品就像我的应用程序的专业版。

问题: 在哪里以及如何处理已经购买的物品?

1 个答案:

答案 0 :(得分:1)

您在应用购买屏幕中显示之前,您应该检查您之前是否已经订购了非消耗品。

好文章:

http://developer.android.com/training/in-app-billing/purchase-iab-products.html

如何调用方法:

mHelper = new IabHelper(this, base64EncodedPublicKey);

mHelper.enableDebugLogging(true);

mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
public void onIabSetupFinished(IabResult result) {

if (!result.isSuccess()) {
return;
}

if (mHelper == null) return;
List<String> st = new ArrayList<String>();
st.add(ITEM_SKU);
mHelper.queryInventoryAsync(true,st,mGotInventoryListener);
}
});

如何查询商品的库存。

IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new IabHelper.QueryInventoryFinishedListener() {
public void onQueryInventoryFinished(IabResult result, Inventory inventory) {

if (mHelper == null) return;

if (result.isFailure()) {
return;
}

if(inventory.hasPurchase(ITEM_SKU)) {
Intent intent = null;
intent = new Intent(getActivity(), Ce.class); 
startActivity(intent);
}
}
};