我无法从我的应用内项目中获取 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 测试中。
最佳答案
尝试使用所有四个参数调用 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 无处可寻,因此它可能甚至不知道要查找什么。
关于android - getPurchase() OK 但 getSkuDetails() NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49189902/