#android #android-fragments
#Android #android-фрагменты
Вопрос:
Я реализовал встроенные покупки в своем приложении, но они доступны для покупки только один раз в моем коде onPurchaseFinished, где я должен вызвать onConsumeListener?
@Override
public void onPurchasesUpdated(int responseCode, @Nullable List<Purchase> purchases) {
if (responseCode == BillingClient.BillingResponse.OK
amp;amp; 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.
}
}
Ответ №1:
может кому-нибудь помочь, это для библиотеки выставления счетов версии 3:
ConsumeParams consumeParams = ConsumeParams
.newBuilder()
.setPurchaseToken(purchase.getPurchaseToken())
.build();
billingClient.consumeAsync(consumeParams, new ConsumeResponseListener() {
@Override
public void onConsumeResponse(BillingResult billingResult, String s) {
//do something..
}
});
К вашему сведению, я выполняю покупку после запроса — queryPurchaseHistoryAsync
, поэтому мой purchase
объект имеет тип: PurchaseHistoryRecord
Ответ №2:
Вы можете поместить
mHelper.consumeAsync(inventory.getPurchase(SKU_COINS),mConsumeFinishedListener);
в соответствии с вашими потребностями.
Согласно моему предложению, вы можете использовать свой продукт в OnIabPurchaseFinishedListener или QueryInventoryFinishedListener
Комментарии:
1. Да. Обратитесь по этой ссылке theappguruz.com/blog/implement-in-app-purchase-version-3