當前位置: 首頁>>代碼示例>>Java>>正文


Java IInAppBillingService類代碼示例

本文整理匯總了Java中com.android.vending.billing.IInAppBillingService的典型用法代碼示例。如果您正苦於以下問題:Java IInAppBillingService類的具體用法?Java IInAppBillingService怎麽用?Java IInAppBillingService使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


IInAppBillingService類屬於com.android.vending.billing包,在下文中一共展示了IInAppBillingService類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: onServiceConnected

import com.android.vending.billing.IInAppBillingService; //導入依賴的package包/類
/**
 * For some reason, that method is always called on the main thread
 * Regardless of the originating thread executing bindService()
 */
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
    ReactiveBilling.log(null, "Service connected (thread %s)", Thread.currentThread().getName());

    IInAppBillingService inAppBillingService = IInAppBillingService.Stub.asInterface(service);
    billingService = new BillingService(context, inAppBillingService);

    if (useSemaphore) {
        // once the service is available, release the semaphore
        // that is blocking the originating thread
        ReactiveBilling.log(null, "Release semaphore (thread %s)", Thread.currentThread().getName());
        semaphore.release();
    } else {
        deliverBillingService(observer);
    }
}
 
開發者ID:lukaspili,項目名稱:Reactive-Billing,代碼行數:21,代碼來源:BaseObservable.java

示例2: getBuyIntent

import com.android.vending.billing.IInAppBillingService; //導入依賴的package包/類
private Bundle getBuyIntent(IInAppBillingService service, List<String> oldItemIds,
                            String itemId, String developerPayload) throws BillingException {
    try {
        // Purchase an item
        if (oldItemIds == null || oldItemIds.isEmpty()) {
            return service.getBuyIntent(
                    mApiVersion, mPackageName, itemId, mItemType, developerPayload);
        }
        // Upgrade/downgrade of subscriptions must be done on api version 5
        // See https://developer.android.com/google/play/billing/billing_reference.html#upgrade-getBuyIntentToReplaceSkus
        return service.getBuyIntentToReplaceSkus(
                BillingApi.VERSION_5.getValue(),
                mPackageName,
                oldItemIds,
                itemId,
                mItemType,
                developerPayload);

    } catch (RemoteException e) {
        throw new BillingException(Constants.ERROR_REMOTE_EXCEPTION, e.getMessage());
    }
}
 
開發者ID:alessandrojp,項目名稱:android-easy-checkout,代碼行數:23,代碼來源:PurchaseFlowLauncher.java

示例3: setBinder

import com.android.vending.billing.IInAppBillingService; //導入依賴的package包/類
private void setBinder(android.os.IBinder binder) {
    IInAppBillingService service = IInAppBillingService.Stub.asInterface(binder);
    Handler handler = mHandler;
    mHandler = null;

    if (handler == null) {
        return;
    }
    if (service == null) {
        BillingException e = new BillingException(
                Constants.ERROR_BIND_SERVICE_FAILED_EXCEPTION,
                Constants.ERROR_MSG_BIND_SERVICE_FAILED_SERVICE_NULL);

        postBinderError(e, handler);
    } else {
        postBinder(service, handler);
    }
}
 
開發者ID:alessandrojp,項目名稱:android-easy-checkout,代碼行數:19,代碼來源:ServiceBinder.java

示例4: isSupported

import com.android.vending.billing.IInAppBillingService; //導入依賴的package包/類
/**
 * Check if the device supports InAppBilling
 *
 * @param service
 * @return true if it is supported
 */
protected boolean isSupported(PurchaseType purchaseType, IInAppBillingService service) throws RemoteException {
    String type;

    if (purchaseType == PurchaseType.SUBSCRIPTION) {
        type = Constants.TYPE_SUBSCRIPTION;
    } else {
        type = Constants.TYPE_IN_APP;
    }

    int response = service.isBillingSupported(
            mContext.getApiVersion(),
            mContext.getContext().getPackageName(),
            type);

    if (response == Constants.BILLING_RESPONSE_RESULT_OK) {
        mLogger.d(Logger.TAG, "Subscription is AVAILABLE.");
        return true;
    }
    mLogger.w(Logger.TAG,
            String.format(Locale.US, "Subscription is NOT AVAILABLE. Response: %d", response));
    return false;
}
 
開發者ID:alessandrojp,項目名稱:android-easy-checkout,代碼行數:29,代碼來源:BillingProcessor.java

示例5: executeInService

import com.android.vending.billing.IInAppBillingService; //導入依賴的package包/類
private void executeInService(final ServiceBinder.Handler serviceHandler, Handler handler) {
    handler.post(new Runnable() {
        @Override
        public void run() {
            final ServiceBinder conn = createServiceBinder();

            conn.getServiceAsync(new ServiceBinder.Handler() {
                @Override
                public void onBind(IInAppBillingService service) {
                    try {
                        serviceHandler.onBind(service);
                    } finally {
                        conn.unbindService();
                    }
                }

                @Override
                public void onError(BillingException e) {
                    serviceHandler.onError(e);
                }
            });
        }
    });
}
 
開發者ID:alessandrojp,項目名稱:android-easy-checkout,代碼行數:25,代碼來源:BillingProcessor.java

示例6: onServiceConnected

import com.android.vending.billing.IInAppBillingService; //導入依賴的package包/類
@Test
public void onServiceConnected() throws InterruptedException {
    final CountDownLatch latch = new CountDownLatch(1);
    Intent intent = new Intent(Constants.ACTION_BILLING_SERVICE_BIND);
    intent.setPackage(Constants.VENDING_PACKAGE);
    final ServiceBinder conn = new ServiceBinder(
            mDataConverter.newBillingContext(RuntimeEnvironment.application), intent);

    conn.getServiceAsync(new ServiceBinder.Handler() {
        @Override
        public void onBind(IInAppBillingService service) {
            assertThat(service).isNotNull();
            latch.countDown();
        }

        @Override
        public void onError(BillingException e) {
            throw new IllegalStateException(e);
        }
    });
    conn.onServiceConnected(null, mServiceStub.create(new Bundle()).asBinder());

    latch.await(15, TimeUnit.SECONDS);
}
 
開發者ID:alessandrojp,項目名稱:android-easy-checkout,代碼行數:25,代碼來源:ServiceTest.java

示例7: onServiceDisconnected

import com.android.vending.billing.IInAppBillingService; //導入依賴的package包/類
@Test
public void onServiceDisconnected() throws InterruptedException {
    final CountDownLatch latch = new CountDownLatch(1);
    Intent intent = new Intent(Constants.ACTION_BILLING_SERVICE_BIND);
    intent.setPackage(Constants.VENDING_PACKAGE);
    final ServiceBinder conn = new ServiceBinder(
            mDataConverter.newBillingContext(RuntimeEnvironment.application), intent);

    conn.getServiceAsync(new ServiceBinder.Handler() {
        @Override
        public void onBind(IInAppBillingService service) {
            assertThat(service).isNotNull();
            conn.onServiceDisconnected(null);
            latch.countDown();
        }

        @Override
        public void onError(BillingException e) {
            throw new IllegalStateException(e);
        }
    });
    conn.onServiceConnected(null, mServiceStub.create(new Bundle()).asBinder());

    latch.await(15, TimeUnit.SECONDS);
}
 
開發者ID:alessandrojp,項目名稱:android-easy-checkout,代碼行數:26,代碼來源:ServiceTest.java

示例8: unbindService

import com.android.vending.billing.IInAppBillingService; //導入依賴的package包/類
@Test
public void unbindService() throws InterruptedException {
    final CountDownLatch latch = new CountDownLatch(1);
    Intent intent = new Intent(Constants.ACTION_BILLING_SERVICE_BIND);
    intent.setPackage(Constants.VENDING_PACKAGE);
    final ServiceBinder conn = new ServiceBinder(
            mDataConverter.newBillingContext(RuntimeEnvironment.application), intent);

    conn.getServiceAsync(new ServiceBinder.Handler() {
        @Override
        public void onBind(IInAppBillingService service) {
            conn.unbindService();
            latch.countDown();
        }

        @Override
        public void onError(BillingException e) {
            throw new IllegalStateException(e);
        }
    });
    conn.onServiceConnected(null, mServiceStub.create(new Bundle()).asBinder());

    latch.await(15, TimeUnit.SECONDS);
}
 
開發者ID:alessandrojp,項目名稱:android-easy-checkout,代碼行數:25,代碼來源:ServiceTest.java

示例9: callGetServiceAsyncTwice

import com.android.vending.billing.IInAppBillingService; //導入依賴的package包/類
@Test
public void callGetServiceAsyncTwice() throws InterruptedException {
    final CountDownLatch latch = new CountDownLatch(1);
    Intent intent = new Intent(Constants.ACTION_BILLING_SERVICE_BIND);
    intent.setPackage(Constants.VENDING_PACKAGE);
    final ServiceBinder conn = new ServiceBinder(
            mDataConverter.newBillingContext(RuntimeEnvironment.application), intent);

    ServiceBinder.Handler handler = new ServiceBinder.Handler() {
        @Override
        public void onBind(IInAppBillingService service) {
            conn.unbindService();
            latch.countDown();
        }

        @Override
        public void onError(BillingException e) {
            throw new IllegalStateException(e);
        }
    };
    conn.getServiceAsync(handler);
    conn.getServiceAsync(handler);
    conn.onServiceConnected(null, mServiceStub.create(new Bundle()).asBinder());

    latch.await(15, TimeUnit.SECONDS);
}
 
開發者ID:alessandrojp,項目名稱:android-easy-checkout,代碼行數:27,代碼來源:ServiceTest.java

示例10: bindService

import com.android.vending.billing.IInAppBillingService; //導入依賴的package包/類
@Test
public void bindService() throws InterruptedException {
    final CountDownLatch latch = new CountDownLatch(1);
    Intent intent = new Intent(Constants.ACTION_BILLING_SERVICE_BIND);
    intent.setPackage(Constants.VENDING_PACKAGE);
    final ServiceBinder conn = new ServiceBinder(
            mDataConverter.newBillingContext(RuntimeEnvironment.application), intent);

    ServiceBinder.Handler handler = new ServiceBinder.Handler() {
        @Override
        public void onBind(IInAppBillingService service) {
            assertThat(service).isNotNull();
            latch.countDown();
        }

        @Override
        public void onError(BillingException e) {
            throw new IllegalStateException(e);
        }
    };
    conn.getServiceAsync(handler);

    latch.await(15, TimeUnit.SECONDS);
}
 
開發者ID:alessandrojp,項目名稱:android-easy-checkout,代碼行數:25,代碼來源:ServiceTest.java

示例11: connectService

import com.android.vending.billing.IInAppBillingService; //導入依賴的package包/類
private Single<Ignore> connectService() {
  return Single.create(new SingleOnSubscribe<Ignore>() {
    @Override public void subscribe(final SingleEmitter<Ignore> emitter) throws Exception {
      if (serviceConnection == null) {
        serviceConnection = new ServiceConnection() {
          @Override public void onServiceDisconnected(ComponentName name) {
            rxBillingServiceLogger.log(getTargetClassName(), "Service disconnected");
            appBillingService = null;
            emitter.onError(
                new RxBillingServiceException(RxBillingServiceError.SERVICE_DISCONNECTED));
          }

          @Override public void onServiceConnected(ComponentName name, final IBinder service) {
            rxBillingServiceLogger.log(getTargetClassName(), "Service connected");
            appBillingService = IInAppBillingService.Stub.asInterface(service);
            emitter.onSuccess(Ignore.Get);
          }
        };

        bindService();
      } else {
        emitter.onSuccess(Ignore.Get);
      }
    }
  });
}
 
開發者ID:miguelbcr,項目名稱:RxBillingService,代碼行數:27,代碼來源:RxBillingServiceImpl.java

示例12: loadInstance

import com.android.vending.billing.IInAppBillingService; //導入依賴的package包/類
private void loadInstance(final Context activityContext) {
	if (activityContext != null && this.activityContext == null)
		this.activityContext = activityContext;
	
	mServiceConn = new ServiceConnection() {
		@Override
		public void onServiceDisconnected(ComponentName name) {
			mService = null;
		}
		@Override
		public void onServiceConnected(ComponentName name, IBinder service) {
			mService = IInAppBillingService.Stub.asInterface(service);
			
			// Service connected : we can now check if the user has purchased smth for example
			launchPurchase(productToBuy);
			
			unbind();
		}
	};
	Intent intent = new Intent("com.android.vending.billing.InAppBillingService.BIND");
	intent.setPackage("com.android.vending");
	isBound = this.activityContext.bindService(intent, mServiceConn, Context.BIND_AUTO_CREATE);
}
 
開發者ID:chteuchteu,項目名稱:Munin-for-Android,代碼行數:24,代碼來源:BillingService.java

示例13: BillingManager

import com.android.vending.billing.IInAppBillingService; //導入依賴的package包/類
/**
 * Creates a new {@link BillingManager} for your Activity.
 * @param activity The activity that initiates purchase requests.
 */
public BillingManager(final Activity activity) {
    this.activity = activity;

    this.connection = new ServiceConnection() {
        @Override
        public void onServiceConnected(final ComponentName name, final IBinder service) {
            BillingManager.this.service   = IInAppBillingService.Stub.asInterface(service);
            BillingManager.this.connected = true;

            if (BillingManager.this.onConnectListener != null) {
                BillingManager.this.onConnectListener.onConnect();
            }
        }

        @Override
        public void onServiceDisconnected(final ComponentName name) {
            BillingManager.this.service   = null;
            BillingManager.this.connected = false;

            if (BillingManager.this.onDisconnectListener != null) {
                BillingManager.this.onDisconnectListener.onDisconnect();
            }
        }
    };
}
 
開發者ID:gotokatsuya,項目名稱:Android-Lib-InAppBilling,代碼行數:30,代碼來源:BillingManager.java

示例14: consumeAllPurchases

import com.android.vending.billing.IInAppBillingService; //導入依賴的package包/類
public static void consumeAllPurchases(Activity activity, SupportAppDevelopmentDialogFragment dialog, IInAppBillingService mService) {
  try {
    Bundle ownedItems = mService.getPurchases(3, activity.getPackageName(), IabHelper.ITEM_TYPE_INAPP, null);
    int response = ownedItems.getInt("RESPONSE_CODE");
    if (response == 0) {
      ArrayList<String> purchaseDataList = ownedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST");
      for (String purchaseData : purchaseDataList) {
        JSONObject jo = new JSONObject(purchaseData);
        mService.consumePurchase(3, activity.getPackageName(), jo.getString("purchaseToken"));
      }
    }
  } catch (Exception e) {
    ActivityTracker.sendEvent(activity, ActivityTracker.CAT_BE, "message_err_billing_check_error", e.getMessage(), 0L);
    Log.e(TAG, "InApp billing - exception " + e.getMessage());
  }
}
 
開發者ID:Daskiworks,項目名稱:ghwatch,代碼行數:17,代碼來源:DonationService.java

示例15: consumeDisposablePurchases

import com.android.vending.billing.IInAppBillingService; //導入依賴的package包/類
public static void consumeDisposablePurchases(Activity activity, IInAppBillingService mService) {
  try {
    Bundle ownedItems = mService.getPurchases(3, activity.getPackageName(), IabHelper.ITEM_TYPE_INAPP, null);
    int response = ownedItems.getInt("RESPONSE_CODE");
    if (response == 0) {
      ArrayList<String> purchaseDataList = ownedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST");
      for (String purchaseData : purchaseDataList) {
        JSONObject jo = new JSONObject(purchaseData);
        if (INAPP_CODE_DONATION_3.equals(jo.getString("productId")))
          mService.consumePurchase(3, activity.getPackageName(), jo.getString("purchaseToken"));
      }
    }
  } catch (Exception e) {
    ActivityTracker.sendEvent(activity, ActivityTracker.CAT_BE, "message_err_billing_check_error", e.getMessage(), 0L);
    Log.e(TAG, "InApp billing - exception " + e.getMessage());
  }
}
 
開發者ID:Daskiworks,項目名稱:ghwatch,代碼行數:18,代碼來源:DonationService.java


注:本文中的com.android.vending.billing.IInAppBillingService類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。