/** * Returns the in-app product billing support status, and checks it asynchronously if it is * currently unknown. Observers will receive a {@link IBillingObserver#onBillingChecked(boolean)} * notification in either case. * * <p>In-app product support does not imply subscription support. To check if subscriptions are * supported, use {@link BillingController#checkSubscriptionSupported(Context)}. * * @param context * @return the current in-app product billing support status (unknown, supported or unsupported). * If it is unsupported, subscriptions are also unsupported. * @see IBillingObserver#onBillingChecked(boolean) * @see BillingController#checkSubscriptionSupported(Context) */ public static BillingStatus checkBillingSupported(Context context) { if (billingStatus == BillingStatus.UNKNOWN) { BillingService.checkBillingSupported(context); } else { boolean supported = billingStatus == BillingStatus.SUPPORTED; onBillingChecked(supported); } return billingStatus; }
private void handleCommand(Intent intent, int startId) { final Action action = getActionFromIntent(intent); if (action == null) { return; } switch (action) { case CHECK_BILLING_SUPPORTED: checkBillingSupported(startId); break; case REQUEST_PURCHASE: requestPurchase(intent, startId); break; case GET_PURCHASE_INFORMATION: getPurchaseInformation(intent, startId); break; case CONFIRM_NOTIFICATIONS: confirmNotifications(intent, startId); break; case RESTORE_TRANSACTIONS: restoreTransactions(intent, startId); } }