【问题标题】:Android: How to restore previous purchased using Android billing 4.0.0Android:如何使用 Android 计费 4.0.0 恢复以前购买的
【发布时间】:2021-10-24 18:36:23
【问题描述】:

我正在尝试创建一个“恢复”按钮(就像在 iOS 中一样),以便用户可以恢复他以前的购买。我正在使用下面的代码,但 List<Purchase> list 回来是空的。我用信用卡进行了真正的购买,然后我删除了该应用程序并从 Google Play 商店重新安装,但我无法让它“恢复”按钮工作。这是我用于“恢复”按钮的代码:

private void restorePreviousPuchases () {

    billingClient.queryPurchasesAsync(BillingClient.SkuType.INAPP, new PurchasesResponseListener() {
        @Override
        public void onQueryPurchasesResponse(@NonNull BillingResult billingResult, @NonNull List<Purchase> list) {

            if (list != null) {

                for (Purchase purchase : list) {
                    ArrayList<String> skus = purchase.getSkus();

                    if (skus != null) {
                        for (String sku : skus) {
                            setPurchasedItem(sku);

                        }
                    }

                }

            } else {
                Log.d("DEBUGGING...", "onCreate: NULL purchaseList" );
            }
        }
    });
    
}

【问题讨论】:

标签: android android-billing


【解决方案1】:

我也遇到了同样的问题。经过一番调查,似乎这是一个已知的错误。

但是,如果您先启动计费客户端,然后调用 queryPurchase,它就可以工作。只是不要把它放在 oncreate 中(对我不起作用)。

BillingClient billingClient;

    public void setupBillingClient(){

     billingClient = BillingClient.newBuilder(mContext)
            .setListener(purchasesUpdatedListener)
            .enablePendingPurchases()
            .build();

    startConnection();
}

public void queryPurchases(Boolean consume){

        if (billingClient!=null) {
            billingClient.queryPurchasesAsync(BillingClient.SkuType.INAPP, new PurchasesResponseListener() {

                @Override
                public void onQueryPurchasesResponse(@NonNull BillingResult billingResult, @NonNull List<Purchase> list) {

                        for (int i = 0; i < list.size(); i++){
                                consumePurchase(list.get(i));
                            }
                    
                }
            });
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    • 2021-10-01
    • 2021-08-19
    • 2013-03-17
    • 1970-01-01
    相关资源
    最近更新 更多