【发布时间】:2015-07-15 23:00:24
【问题描述】:
我知道,截至 2015 年 5 月,谷歌改变了他们在草稿模式下处理您的应用的方式 -
在少数情况下,您可以使用未发布的应用测试 Google Play 功能。例如,您可以使用静态响应、始终返回特定结果(如“已购买”或“已退款”)的特殊保留产品 ID 来测试未发布应用的应用内计费支持。
我的问题是您能否在草稿模式下对您的产品使用 IabHelper.queryInventoryAsync()。我知道要进行购买,您必须使用保留的产品 ID,但查询呢?这个问题源于这样一个事实,即当我从侦听器返回 Inventory 时返回 null。
final String SKU_VERBAL_HINT = "verbal_00.thisthat";
// compute your public key and store it in base64EncodedPublicKey
mHelper = new IabHelper(this, base64EncodedPublicKey);
// enable debug logging (for a production application, you should set this to false).
mHelper.enableDebugLogging(true);
mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
public void onIabSetupFinished(IabResult result) {
if (!result.isSuccess()) {
// Oh noes, there was a problem.
Log.d("Issue", "Problem setting up In-app Billing: " + result);
}else{
//List<String> additionalSkuList = new ArrayList<String>();
//additionalSkuList.add(SKU_VERBAL_HINT);
String[] moreSkus = {SKU_VERBAL_HINT};
mHelper.queryInventoryAsync(true, Arrays.asList(moreSkus),
mQueryFinishedListener);
Log.d("Issue", "No Problem setting up in-app billing " + result);
}
}
});
mQueryFinishedListener = new IabHelper.QueryInventoryFinishedListener() {
public void onQueryInventoryFinished(IabResult result, Inventory inventory)
{
if (result.isFailure()) {
// handle error
return;
}
**-------->FAILS HERE, null inventory** String verbalPrice =
inventory.getSkuDetails(SKU_VERBAL_HINT).getPrice();
String verbal2 = verbalPrice;
// update the UI
}
};
【问题讨论】: