In-app billing v3 无法在没有网络连接或在飞行/飞行模式下查询项目 [英] In-app billing v3 unable to query items without network connection or in airplane/flight mode

查看:12
本文介绍了In-app billing v3 无法在没有网络连接或在飞行/飞行模式下查询项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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() {
    @Override
    public void onQueryInventoryFinished(IabResult result, Inventory inventory) {

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

        ......
    }
};

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.");
mHelper.queryInventoryAsync(mGotInventoryListener);

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

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

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

这篇关于In-app billing v3 无法在没有网络连接或在飞行/飞行模式下查询项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆