在旧设备上查询项目时出错

Getting error in querying item on older devices

我已经实现了计费库,它可以在 Api 级别 28 上运行,但它不能在 api 级别 23 上运行我得到 W/BillingClient:getSkuDetails() 失败。响应代码:6

public void startConnection() {
    billingClient.startConnection(new BillingClientStateListener() {
        @Override
        public void onBillingSetupFinished(BillingResult billingResult) {
            if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
                // The BillingClient is ready. You can query purchases here.
                List<String> skuList = new ArrayList<>();
                skuList.addAll(skuListFetchFromServer);
                SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
                params.setSkusList(skuList).setType(BillingClient.SkuType.SUBS);

                billingClient.querySkuDetailsAsync(params.build(),
                        new SkuDetailsResponseListener() {
                            @Override
                            public void onSkuDetailsResponse(BillingResult billingResult, List<SkuDetails> skuDetailsList) {

                                for (SkuDetails details : skuDetailsList) {
                                    Log.w(TAG, "Got a SKU: " + details);
                                }
                            }

                        });
            }
        }

        @Override
        public void onBillingServiceDisconnected() {

        }
    });
}

此错误是否涉及设备、gmail 帐户或 Api 级别 请帮助我,我浪费了很多时间寻找解决方案,但无法修复它。

Google 不再支持 IabHelper 和 AIDL 应用内计费实现,它们已被弃用。

对于新项目,应使用计费库添加:

implementation 'com.android.billingclient:billing:2.0.3'

在您的应用中 build.gradle

使用计费库,即使在 Android 4.1 phone

中,我也可以毫无问题地获取调用 billingClient.querySkuDetailsAsync() 的商品价格