我在我的应用中更新了TrivialDrive的IAB助手。如果没有互联网连接,QueryInventoryFinishedListener开始获取result.isFailure()。在早期版本的IAB Helper中,一切正常,没有result.isFailure(),即使几周内没有互联网连接。
这是IAB Helper新版本的功能还是我做错了什么?
IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new IabHelper.QueryInventoryFinishedListener() {
public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
Log.d(TAG, "Query inventory finished.");
if (mHelper == null) {
Log.d(TAG, "null: " + result);
return;
}
if (result.isFailure()) {
Log.d(TAG, "Failed to query inventory: " + result);
return;
}
Log.d(TAG, "Query inventory was successful.");
Purchase proPurchase = inventory.getPurchase(SKU_PRO);
mIsPro = (proPurchase != null);`
答案 0 :(得分:3)
IabHelper与之交谈的应用内结算服务,缓存购买历史记录并能够离线查询库存。但是一些选项(如不提供目标SKU列表或请求SKU详细信息)强制服务与服务器通信,这在没有互联网连接的情况下是不可能的。因此,如果您希望能够离线查询库存,请执行以下操作:
boolean querySkuDetails = isNetworkAvailable();
mHelper.queryInventoryAsync(querySkuDetails, skuList, this);