how In-app billing v3 unable to query items without network connection or in airplane/flight mode



Going through the v3 example file in modifying it with my project works fine. However my friend just tested the code by turning wi-fi off and turning on airplane mode. This seems to result in not being able to query the in-app inventory.

// Listener that's called when we finish querying the items and subscriptions we own
private final IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new IabHelper.QueryInventoryFinishedListener() {
    public void onQueryInventoryFinished(IabResult result, Inventory inventory) {

        if (result.isFailure()) {
            // STOPS here and doesn't continue on with no network connection


I thought that after a initial successful purchase that v3 stores that locally in it’s cache so that it didn’t always have to have a network connection to check. Has anyone else ran into this issue? I hope I’m missing something completely obvious or if this is how it’s supposed to work.





I think I may have found the answer. In following v3’s TrivialDriveExample I was calling the queryInventoryAsync function in the mHelper.startSetup() function like so:

Log.d(TAG, "Setup successful. Querying inventory.");

Instead now I’m passing a String array list of my SKUs that I want to query for:

List<String> skulist = new ArrayList<String>();
mHelper.queryInventoryAsync(true, skulist, mGotInventoryListener);

I then tested by turning on flight mode and I was able to query my purchases fine!


Facebook Comments

Post a comment