android – 在App Billing V3中

我在In App Billing中遇到了问题.我正在使用TrivialDrive示例中的帮助程序类.

这是我实现它的方式.

>用户按下删除广告
>启动助手
>使用侦听器检测何时设置帮助程序.
>查询库存
>使用侦听器检测完成时间
>检查是否已购买.如果是,请删除广告并退出
>如果没有,那么launchPurchaseFlow购买.

这在一台设备上运行正常,但是如果用户在一台设备上购买然后在另一台设备上尝试,则第二台设备的工作方式如下:

帮助器设置正常,然后当它检查库存时,它没有找到购买的物品(我知道在更新之前有一个延迟).然后它尝试购买,但说已在Google Play窗口上购买的商品.如果我可以在代码中检测到这一点,那就没问题了,但它会返回给用户取消购买的监听器.

有没有办法检测用户是否已使用purchaseFinishedListener购买了该项目?

最佳答案 handleActivityResult方法中的代码返回User Cancelled

else if(resultCode == Activity.RESULT_CANCELED){
            logDebug(“购买已取消 – 响应:”getResponseDesc(responseCode));
            result = new IabResult(IABHELPER_USER_CANCELLED,“用户取消.”);
            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”);

点赞