在 Android Kotlin Billing 中,如果遇到 "ITEM_ALREADY_OWNED" 条件未执行的问题,可以尝试以下解决方法:
PurchasesUpdatedListener
后,确保已实现 onPurchasesUpdated
方法。billingClient = BillingClient.newBuilder(context)
.setListener { purchases ->
// 处理购买更新事件
onPurchasesUpdated(purchases)
}
.build()
fun onPurchasesUpdated(purchases: List) {
for (purchase in purchases) {
if (purchase.purchaseState == Purchase.PurchaseState.PURCHASED) {
// 处理已购买的商品
} else if (purchase.purchaseState == Purchase.PurchaseState.PENDING) {
// 处理待定状态的商品
}
}
}
queryPurchasesAsync
方法来查询已购买的商品。billingClient.queryPurchasesAsync(BillingClient.SkuType.INAPP) { result, purchasesList ->
if (result.responseCode == BillingClient.BillingResponseCode.OK && purchasesList != null) {
for (purchase in purchasesList) {
if (purchase.purchaseState == Purchase.PurchaseState.PURCHASED) {
// 处理已购买的商品
} else if (purchase.purchaseState == Purchase.PurchaseState.PENDING) {
// 处理待定状态的商品
}
}
}
}
这些方法可以帮助解决 "ITEM_ALREADY_OWNED" 条件未执行的问题。如果问题仍然存在,可以进一步检查代码和调试相关逻辑,或者查看相关文档和论坛以获取更多帮助。