I am developing an android SDK and I need to query user's existing subscriptions through BillingClient purchased before installation of my SDK. I am planning to do it by using BillingClient.getPurchases() method but I don't know if the application has any active and connected BillingClient at that time. So I will create a BillingClient object first and use this client to query existing purchases. I don't want to affect any in app purchase process of application when doing this. Is it safe to use multiple instance of BillingClient at the same time ?
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() {
}
});