【问题标题】:Getting error in querying item on older devices在旧设备上查询项目时出错
【发布时间】:2019-11-24 05:28:59
【问题描述】:

我已经实现了 Billing 库,它适用于 Api 级别 28,但它不适用于 api 级别 23 我收到 W/BillingClient: getSkuDetails() failed。响应码: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 级别有关 请帮助我,我浪费了很多时间来寻找解决方案,但无法修复它。

【问题讨论】:

    标签: android in-app-purchase in-app-billing in-app-subscription


    【解决方案1】:

    Google 不再支持 IabHelper 和 AIDL 用于应用内结算实施,它们已被弃用。

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

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

    在您的应用 build.gradle 中

    使用计费库,即使在 Android 4.1 手机中,我也可以毫无问题地获得调用 billingClient.querySkuDetailsAsync() 的商品价格

    【讨论】:

    • 谷歌文档会比我解释得更好developer.android.com/google/play/billing/…
    • 我已经实现了 billingClient 但我仍然得到 getSkuDetails() 失败。响应码:6
    • 知道了,由于我的手机登录了多个帐户,因此出现错误
    • 如果skuListFetchFromServer 包含有效的 Sku,您的代码看起来是正确的。您应该在 onSkuDetailsResponse 上检查 billingResult
    猜你喜欢
    • 2016-04-19
    • 1970-01-01
    • 1970-01-01
    • 2023-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    相关资源
    最近更新 更多