BillingClient 始终返回 SERVICE_DISCONNECTED

Posted

技术标签:

【中文标题】BillingClient 始终返回 SERVICE_DISCONNECTED【英文标题】:BillingClient always returns SERVICE_DISCONNECTED 【发布时间】:2018-09-29 05:06:04 【问题描述】:

所以我有一个计费客户端,我用它来实例化

billingClient = BillingClient.newBuilder(this).setListener(this).build();

然后我打电话给

billingClient.startConnection(new BillingClientStateListener() 
        @Override
        public void onBillingSetupFinished(int responseCode) 
            //TODO: use this for stuff
            com.android.billingclient.api.Purchase.PurchasesResult result;
result = billingClient.queryPurchases(BillingClient.SkuType.SUBS);
    Timber.d(result.toString());

        

        @Override
        public void onBillingServiceDisconnected() 
            //TODO: use this for stuff
            Timber.d("something went wrong ");
        
    );

无论出于何种原因,木材线上的断点总是断开连接。谁能提供我将如何做到这一点的见解或示例?

【问题讨论】:

我遇到了同样的问题。你是怎么解决的? 我现在遇到了这个问题,这让我发疯了。 看看你的BillingClient是否真的准备好了,请参考我在下面线程***.com/questions/56332090/…的回答 【参考方案1】:

我遇到了这个问题。 还要确保启动连接:

mBillingClient = BillingClient.newBuilder(mContext).setListener(purchasesUpdatedListener).build();

        mBillingClient.startConnection(new BillingClientStateListener() 
            @Override
            public void onBillingSetupFinished(@BillingClient.BillingResponse int billingResponseCode) 
                if (billingResponseCode == BillingClient.BillingResponse.OK) 

                    Log.d(TAG, "onBillingSetupFinished: BillingClient.BillingResponse.OK ");

                


            
            @Override
            public void onBillingServiceDisconnected() 
                // Try to restart the connection on the next request to
                // Google Play by calling the startConnection() method.
            


        );

【讨论】:

起初我认为您的评论没有帮助,但是我已经能够自己检查,如果您收到 SERVICE_DISCONNECTED 响应,那么您需要(再次)调用 startConnection() 方法.竖起大拇指!【参考方案2】:

原来我没有使用我的 apk 版本,该版本使用正确的版本编号等进行了签名。一旦我修复了这个问题,我就可以连接到播放服务并弄清楚我想要什么。

【讨论】:

你是怎么解决这个问题的? 只是确保 apk 和播放服务上的版本控制是相同的。我有各种日志记录以及应用程序中没有的内容,因此只需确保与游戏控制台所说的相符 @1tSurge 你的意思是关于应用程序的版本号和版本代码?或者可能是在build.gradle 中添加的计费依赖版本?否则,你在哪里检查? 我也很好奇这个问题,我遇到了同样的问题,一直没能解决。 apk 和播放服务版本控制相同是什么意思?【参考方案3】:

如果您使用自定义 rom 或 root 设备,它可能无法正常工作。

运行已预安装 Google Play 客户端应用程序的系统映像。 如果系统映像中未预装 Google Play,您的应用程序将无法与 Google Play 许可服务器通信。

https://developer.android.com/google/play/licensing/setting-up

【讨论】:

以上是关于BillingClient 始终返回 SERVICE_DISCONNECTED的主要内容,如果未能解决你的问题,请参考以下文章

BillingClient.BillingClientStateListener.onBillingSetupFinished 被多次调用

退款客户应用内购买,但 BillingClient 仍然显示用户已购买?

BillingClient 和 PurchasesUpdateListener 类不可用

为啥 Android BillingClient v2 慢速信用卡测试永远不会取消?

整个应用程序中BillingClient的一个实例

是否可以从 Xamarin Android 应用程序直接使用 Google Play BillingClient?