在应用内结算V3

Dan*_*oid 5 android in-app-purchase in-app-billing

我在应用内结算方面遇到问题。我正在使用TrivialDrive示例中的帮助器类。
这是我的实现方法。

  1. 用户按下移除广告
  2. 启动助手
  3. 使用侦听器检测何时设置了辅助程序。
  4. 查询库存
  5. 使用侦听器检测完成时间
  6. 检查是否已经购买。如果是这样,请删除广告并退出
  7. 如果没有,则启动购买流程进行购买。

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

帮手照常进行设置,然后在检查库存时发现没有购买任何物品(我知道此更新之前会有所延迟)。然后,它尝试购买,但说在Google Play窗口上已经购买的物品。如果我可以在代码中检测到这一点,那会很好,但它会返回给侦听器,表明用户取消了购买。

有没有一种方法可以检测到用户已经使用买了商品purchaseFinishedListener

Dan*_*oid 3

方法中的代码handleActivityResult返回 User Canceled

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");