我目前正在将 IAB v2 迁移到 v3。在 v2 中,如果您拥有尝试购买的特定商品,Google Play 对话框会以红色文本显示“您已经拥有此商品”。在 v3 中,我可以得到错误响应 5(项目已拥有),但 Google Play 对话框永远不会出现在屏幕上。
我正在使用最新的示例代码 IabHelper,如果响应不是 0,它似乎返回时没有开始意图。
logDebug("Constructing buy intent for " + sku + ", item type: " + itemType);
Bundle buyIntentBundle = mService.getBuyIntent(3, mContext.getPackageName(), sku, itemType, extraData);
int response = getResponseCodeFromBundle(buyIntentBundle);
if (response != BILLING_RESPONSE_RESULT_OK) {
logError("Unable to buy item, Error response: " + getResponseDesc(response));
flagEndAsync();
result = new IabResult(response, "Unable to buy item");
if (listener != null)
listener.onIabPurchaseFinished(result, null);
return;
}
PendingIntent pendingIntent = buyIntentBundle.getParcelable(RESPONSE_BUY_INTENT);
logDebug("Launching buy intent for " + sku + ". Request code: " + requestCode);
mRequestCode = requestCode;
mPurchaseListener = listener;
mPurchasingItemType = itemType;
act.startIntentSenderForResult(pendingIntent.getIntentSender(), requestCode, new Intent(), Integer.valueOf(0), Integer.valueOf(0), Integer.valueOf(0));
是否有可能与 v2 的行为相同?还是我应该在我的应用程序中创建带有“已拥有”的对话框?