我正在开发一个应用程序,它将允许用户使用应用程序内购买进行购买,并且我想在购买后删除广告。我可以使用以下代码成功购买
BillingFlowParams flowParams = BillingFlowParams.newBuilder()
.setSku("android.test.purchased")
.setType(BillingClient.SkuType.INAPP)
.build();
mBillingClient.launchBillingFlow(getActivity(), flowParams);
但是当我再次打开应用程序并在下面调用此方法时,我看不到来自queryPurchaseHistoryAsync的结果。
mBillingClient.queryPurchaseHistoryAsync(BillingClient.SkuType.INAPP, new PurchaseHistoryResponseListener() {
@Override
public void onPurchaseHistoryResponse(int responseCode, List<Purchase> purchasesList) {
purchasesList.size();
}
});
purchasesList.size()== 0
“ queryPurchaseHistoryAsync”方法不能显示测试购买或我做错了吗?
编辑:在删除后再次安装应用后,queryPurchaseHistoryAsync方法是否检查购买。
答案 0 :(得分:1)
尝试此操作将提供所有购买物品。
mBillingClient.querySkuDetailsAsync(params.build(),
new SkuDetailsResponseListener() {
@Override
public void onSkuDetailsResponse(int responseCode, List<SkuDetails> skuDetailsList) {
listener.onSkuDetailsResponse(responseCode, skuDetailsList);
}
});
答案 1 :(得分:0)
mBillingClient.queryPurchases()
是您所需要的。在每次应用启动时(例如,每次主要活动恢复时)都调用它。这样,您(重新安装)的应用最终将检测到所有用户的购买。