Pan*_*dav 0 android android-fragments
我已经在我的应用程序中实现了应用程序内购买,但它们只能在我的 onPurchaseFinished 代码中购买一次,我应该在哪里调用 onConsumeListener?
@Override
public void onPurchasesUpdated(int responseCode, @Nullable List<Purchase> purchases) {
if (responseCode == BillingClient.BillingResponse.OK
&& purchases != null) {
Toast.makeText(getContext(), "Purchased", Toast.LENGTH_SHORT).show();
adddata();
for (Purchase purchase : purchases) {
}
} else if (responseCode == BillingClient.BillingResponse.USER_CANCELED) {
// Handle an error caused by a user cancelling the purchase flow.
} else if (responseCode == BillingClient.BillingResponse.ITEM_ALREADY_OWNED) {
Toast.makeText(getContext(), "Purchase Limit Reached! Try again later", Toast.LENGTH_SHORT).show();
} else{
// Handle any other error codes.
}
}
Run Code Online (Sandbox Code Playgroud)
可以帮助某人,这适用于 Billing Library 版本 3:
ConsumeParams consumeParams = ConsumeParams
.newBuilder()
.setPurchaseToken(purchase.getPurchaseToken())
.build();
billingClient.consumeAsync(consumeParams, new ConsumeResponseListener() {
@Override
public void onConsumeResponse(BillingResult billingResult, String s) {
//do something..
}
});
Run Code Online (Sandbox Code Playgroud)
仅供参考,我在查询后消费了购买 - queryPurchaseHistoryAsync,所以我的purchase对象类型为:PurchaseHistoryRecord