IabHelper PurchaseFinishedListener

∥☆過路亽.° 提交于 2019-11-28 05:54:10
AndroidPenguin

I found out how to fix it. Implement handleActivityResult in onActivityResult. It's needed to create a bridge between the listener and the launched purchase flow.

Given below is the code I used:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        Log.d(TAG, "onActivityResult(" + requestCode + "," + resultCode + ","
                + data);

        // Pass on the activity result to the helper for handling
        if (!mHelper.handleActivityResult(requestCode, resultCode, data)) {
            super.onActivityResult(requestCode, resultCode, data);
        } else {
            Log.d(TAG, "onActivityResult handled by IABUtil.");
        }
    }
kevinl

AndroidPenguin, I'm running into the same issue as you, but I have the activityresult correctly set and yet my purchasefinishedlistener does not execute.

Here is my onActivityResult

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (SettingsManager.getBooleanSetting(rootId, "inapppurchase", false)){
        Log.d(TAG, "take care of activity result with billing helper");
        if (!mBillingService.handleActivityResult(requestCode, resultCode, data)) {
            // not handled, so handle it ourselves (here's where you'd
            // perform any handling of activity results not related to in-app
            // billing...
            super.onActivityResult(requestCode, resultCode, data);
        }
        else {
            Log.d(TAG, "onActivityResult handled by IABUtil.");
        }
    }
    else
        super.onActivityResult(requestCode, resultCode, data);
}

In my case, it is working try like this, wait until that google play dialog close itself.Then, the listener will get called

For those of you who had the same issue I was experiencing...

I just made my member variable IabHelper static, and that fixed the issue.

I already had added AndroidPenguin's code, and was still getting crashes from a null IabHelper, after I had purchased an item(so onActivityResult never had a chance to call handleActivityResult because mHelper was null).

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!