Безопасно ли использовать несколько экземпляров android BillingClient в приложении? - PullRequest
2 голосов
/ 09 мая 2020

Я разрабатываю android SDK, и мне нужно запросить существующие подписки пользователя через BillingClient, приобретенные перед установкой моего SDK. Я планирую сделать это с помощью метода BillingClient.getPurchases (), но я не знаю, есть ли в приложении в это время активный и подключенный BillingClient. Поэтому сначала я создам объект BillingClient и использую этого клиента для запроса существующих покупок. Я не хочу влиять на процесс покупки приложения при этом. Насколько безопасно использовать несколько экземпляров BillingClient одновременно?

BillingClient billingClient = BillingClient.newBuilder(EmptyActivity.this).enablePendingPurchases().setListener(this).build();
        billingClient.startConnection(new BillingClientStateListener() {
            @Override
            public void onBillingSetupFinished(BillingResult billingResult) {
                if (billingResult.getResponseCode() ==  BillingClient.BillingResponseCode.OK) {
                    Purchase.PurchasesResult result = billingClient.queryPurchases(BillingClient.SkuType.SUBS);
                    for (int i=0; i<result.getPurchasesList().size();i++) {
                        Purchase purchase = result.getPurchasesList().get(i);
                        if (purchase.getPurchaseState() == Purchase.PurchaseState.PURCHASED) {
                            purchases.add(purchase);
                        }
                    }

                }
            }
            @Override
            public void onBillingServiceDisconnected() {

            }
        });
...