Android In app billing with subscriptions

时间:2016-03-26 19:05:00

标签: android in-app-billing

我一直在关注如何使用TrivialDrive中的示例代码设置应用内购买的Google教程。 http://developer.android.com/training/in-app-billing/preparing-iab-app.html#GetSample

我已经创建了一些应用内商品,但我只能查询"托管产品'而不是'

mHelper.queryInventoryAsync(true, additionalSkuList, mQueryFinishedListener);
 final IabHelper.QueryInventoryFinishedListener
            mQueryFinishedListener = new IabHelper.QueryInventoryFinishedListener() {
        public void onQueryInventoryFinished(IabResult result, Inventory inventory)
        {
            if (result.isFailure()) {
                toast("query fail");
                return;
            }

            SkuDetails subscription =  inventory.getSkuDetails(SKU_SUBSCRIPTION);
            SkuDetails test =  inventory.getSkuDetails(SKU_TEST);
            if(subscription != null) {
                toast("subscription: " + subscription.toString());
                // update the UI
            }
            else {
                toast("subscription: null " + inventory.toString());
            }
        }
    };

SkuDetails订阅始终为空,但SkuDetails测试不是,我创建了多个订阅和被管理产品,但它只是订阅不起作用。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

试试这个

准备sku列表包

ArrayList<String> skuList = new ArrayList<String> ();
skuList.add(SKU_TEST);
Bundle querySkus = new Bundle();
querySkus.putStringArrayList(“ITEM_ID_LIST”, skuList);

并在应用内结算版本3 API上调用getSkuDetails方法,将方法传递给应用内结算API版本(“3”),调用应用的包名称,购买类型(“subs”) ,以及你创建的Bundle。

Bundle skuDetails = mService.getSkuDetails(3,
   getPackageName(), "subs", querySkus);