In-app billing v3 无法在没有网络连接或在飞行/飞行模式下查询项目 [英] 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() {
@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屋!