无法连接到 Google 播放结算

Unable to connect to Google Play billing

我正在尝试简单地连接到 Google play billing & access details such as title & pricing 但我一直无法这样做。

到目前为止我做了什么(一步一步):

(在 Google 游戏机上添加了 IAP 详细信息并发布了应用程序)

  1. 在 Manifest 文件中添加了 Billing 权限 -> <uses-permission android:name="com.android.vending.BILLING" />

  2. 添加了计费库 (v.4.0) -> implementation 'com.android.billingclient:billing:4.0.0'

  3. 在 MainActivity 中初始化了 BillingClient 并尝试连接到它,onBillingSetupFinished 回调方法

    没有任何响应
    private void initializeBillingClient(Context context) {
     billingClient = BillingClient.newBuilder(context)
             .enablePendingPurchases()
             .setListener(this)
             .build();
    
     connectToGooglePlayBilling(context);
    }
    
    
    private void connectToGooglePlayBilling(Context context) {
     billingClient.startConnection(new BillingClientStateListener() {
         @Override
         public void onBillingServiceDisconnected() {
             connectToGooglePlayBilling(context);
         }
    
         @Override
         public void onBillingSetupFinished(@NonNull BillingResult billingResult) {
             Toast.makeText(context, "connected to google play billing", Toast.LENGTH_SHORT).show();
             if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
                 //I should then fetch & display premium content details
             }
         }
     });
    }
    

很奇怪 我注意到当我启用省电模式(我使用的是三星设备)时,onBillingSetupFinished 方法在显示 toast 时被调用.

我做错了什么以及是否有人可以解释为什么启用省电模式突然可以正常工作?

确保 onBillingSetupFinished 在 UI 线程中被调用。
尝试使用 runOnUiThread 来显示消息:

runOnUiThread(() -> 
                Toast.makeText(context, "connected to google play billing", Toast.LENGTH_SHORT).show());