Reputation: 1697
I'm trying to show Toast inside onBillingSetupFinished method but it's never connect with it.
Code
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityMainBinding activityMainBinding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(activityMainBinding.getRoot());
BillingClient billingClient = BillingClient.newBuilder(this).enablePendingPurchases().setListener(this).build();
billingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingServiceDisconnected() {
Toast.makeText(MainActivity.this, "A", Toast.LENGTH_SHORT).show();
}
@Override
public void onBillingSetupFinished(@NonNull BillingResult billingResult) {
Toast.makeText(MainActivity.this, "B", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void onPurchasesUpdated(@NonNull BillingResult billingResult, @Nullable List<Purchase> list) {
Toast.makeText(this, "C", Toast.LENGTH_SHORT).show();
}
Permissions
<uses-permission android:name="android.permission.INTERNET"/>
I uploaded apk to Google Play Store and they accepted it but code still not working.
Upvotes: 0
Views: 431
Reputation: 389
Your code works fine. It's just that you are unable to get the toast. There are two things you can do:
Replace the Toast with
Log.d("GoogleBillingService", "onBillingSetupFinished: billingResult: Yes/Your Result");
And check the LogCat at GoogleBillingService to get the results.
The toast is probably running on a different thread and hence you don't see it when you run the application.
Try using
((Activity)context).runOnUiThread(new Runnable()
{
public void run()
{
Toast.makeText(context, toast, Toast.LENGTH_SHORT).show();
}
});
Hope this helps you out!
Upvotes: 4