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

Failed to query inventory without internet connection

我在我的应用程序中从 TrivialDrive 更新了 IAB Helper。如果没有互联网连接,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);`

IabHelper 与之对话的应用内结算服务缓存购买历史记录并能够离线查询库存。但有些选项(例如不提供目标 SKU 列表或请求 SKU 详细信息)强制服务与服务器对话,如果没有互联网连接,这是不可能的。所以,如果你希望能够离线查询库存,那么这样做:

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