2

アプリのサブスクリプションを使用してアンドロイドでアプリを開発しています。IabHelper.QueryInventoryFinishedListener を使用して購入アイテムをクエリしようとしています。しかし、それは常に失敗の結果として起こります。IabResult は失敗を返します。開発者コンソールのアプリ製品に追加しました。誰でもこれについて私を助けることができますか?

ここに私のコードの一部があります、

bindService(new  Intent("com.android.vending.billing.InAppBillingService.BIND"),
                        mServiceConn, Context.BIND_AUTO_CREATE);

String base64EncodedPublicKey = "my key";                                        

mHelper = new IabHelper(this, base64EncodedPublicKey);
        mHelper.enableDebugLogging(true);
mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
               public void onIabSetupFinished(IabResult result) {
                  if (!result.isSuccess()) {
                      System.out.println("Not Success");                      
                     Log.d("In APP Billing", "Problem setting up In-app Billing: " + result);
                     return;
                  } else {
                      System.out.println("Success");
                      Log.d(" In APP Billing", "Setting up In-app Billing Success: " + result);
                  }

                  List<String> additionalSkuList = new ArrayList<String>();
                  additionalSkuList.add(SKU_ID);                  

                  mHelper.queryInventoryAsync(true, additionalSkuList,
                           mQueryFinishedListener);

               }


});     

    IabHelper.QueryInventoryFinishedListener mQueryFinishedListener = new IabHelper.QueryInventoryFinishedListener() {

        @Override
        public void onQueryInventoryFinished(IabResult result, Inventory inv) {
            // TODO Auto-generated method stub

            if (result.isFailure()) {
                 // handle error
                System.out.println("mQueryFinishedListener is Failure"); // i am always getting this
                 return;
            }
            System.out.println("mQueryFinishedListener is Success");


            Boolean hasPur = inv.hasPurchase(SKU_ID);

            if (hasPur) {
                System.out.println("Query - - subscribed ");
                isSubscribed = true;
            } else {
                System.out.println("Query - not subscribed ");
                isSubscribed = false;
            }

            System.out.println("Purchase panic:"+inv.getPurchase(SKU_ID));

        }
};

なぜそれが機能しないのですか?前もって感謝します。

4

1 に答える 1

2

アプリのサブスクリプションで作業するには、作成した IabHelper インスタンスで「launchSubscriptionPurchaseFlow()」メソッドを呼び出す必要があると思います。

    mHelper.launchSubscriptionPurchaseFlow(Activity act, String sku, int requestCode,
        OnIabPurchaseFinishedListener listener, String extraData);

また

mHelper.launchPurchaseFlow(Activity act, String sku, String itemType, int requestCode,
                OnIabPurchaseFinishedListener listener, String extraData);

itemType = IabHelper.ITEM_TYPE_SUBS

于 2014-01-10T08:59:09.077 に答える