我在In App Billing中遇到了问题。我正在使用TrivialDrive示例中的帮助程序类 这是我实现它的方式。
这在一台设备上运行正常,但是如果用户在一台设备上购买然后在另一台设备上尝试,则第二台设备的工作方式如下:
帮助器设置正常,然后当它检查库存时,它没有找到购买的物品(我知道在更新之前有一段延迟)。然后它尝试购买,但说已在Google Play窗口上购买的商品。如果我能在代码中检测到这一点,那就没问题了,但它会返回给用户取消购买的监听器。
有没有办法检测用户是否已使用purchaseFinishedListener
?
答案 0 :(得分:2)
handleActivityResult
方法中的代码返回User Cancelled
else if (resultCode == Activity.RESULT_CANCELED) {
logDebug("Purchase canceled - Response: " + getResponseDesc(responseCode));
result = new IabResult(IABHELPER_USER_CANCELLED, "User canceled.");
if (mPurchaseListener != null) mPurchaseListener.onIabPurchaseFinished(result, null);
}
我添加了行if (responseCode==BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED) result = new IabResult(BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED, "Success");
答案 1 :(得分:0)
试试这个
IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new
IabHelper.QueryInventoryFinishedListener(){
public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
.....................
if (inventory.hasPurchase(SKU_CONTENT)) {
mHelper.consumeAsync(inventory.getPurchase(SKU_CONTENT), null);
}
}
};