getPurchase()OK但getSkuDetails()为NULL

时间:2018-03-09 08:54:18

标签: android in-app-purchase in-app

我无法从我的应用内项目中获得sku标题。

我遵循TrivialDrive示例,

我用

查询广告资源
try {
   mHelper.queryInventoryAsync(mGotInventoryListener);
} catch (IabAsyncInProgressException e) {
   complain("Error querying inventory. Another async operation in progress.");
}

我获得了正确的购买信息

String sku = inventory.getPurchase(SKU[i]).getSku();
Long date_l = inventory.getPurchase(SKU[i]).getPurchaseTime();

但如果我收到的询问详情总是空

inventory.hasDetails(SKU[i]);

apk正在进行beta测试。

1 个答案:

答案 0 :(得分:0)

尝试使用所有四个参数调用mHelper.queryInventoryAsync()。

List<String> skus = new ArrayList<String>();
skus.add(SKU_PREMIUM);
mHelper.queryInventoryAsync(true,skus, skus, mGotInventoryListener);

来自IabHelper类

public void queryInventoryAsync(final boolean querySkuDetails, final List<String> moreItemSkus,
                                final List<String> moreSubsSkus, final QueryInventoryFinishedListener listener)

我遇到了同样的问题,.getPurchase()和实际的购买流程都在工作。 还使用了TrivialDrive示例中的代码,因此我不知道queryInventoryAsync()可以采用四个参数。我也不知道为什么这样做。我怀疑queryInventoryAsync(listener)的“标准”流程仅涉及自身,目的是检查一个使用者是否拥有一个物品,是否需要专门告知他寻找其他物品。 请注意,当仅使用侦听器作为参数调用它时,就找不到SKU,因此它甚至不知道要查找什么。