无法在没有互联网连接的情况下查询库存

时间:2016-08-31 08:06:28

标签: android in-app-billing

我在我的应用中更新了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);`

1 个答案:

答案 0 :(得分:3)

IabHelper与之交谈的应用内结算服务,缓存购买历史记录并能够离线查询库存。但是一些选项(如不提供目标SKU列表或请求SKU详细信息)强制服务与服务器通信,这在没有互联网连接的情况下是不可能的。因此,如果您希望能够离线查询库存,请执行以下操作:

boolean querySkuDetails = isNetworkAvailable();
mHelper.queryInventoryAsync(querySkuDetails, skuList, this);