当前位置: 首页 > 知识库问答 >
问题:

onIabPurchaseFinated从未打过电话。

相高谊
2023-03-14

我一直在尝试为我的第一个应用设置应用内账单,并且一直在使用android。测验购买的sku。采购成功了,我成功地将SKU放入了我的库存,但正如标题所说,onIabPurchaseFinished从未被调用。

我认为这可能与以下日志有关:“无法保存哪个视图有焦点,因为焦点视图com.android.internal.policy.impl.PhoneWindow$DecorView@406743d0在进入Google Play之前,它会弹出。但我不确定这意味着什么。。。

启动购买:

mHelper.launchPurchaseFlow(this, sku, 10001, mPurchaseFinishedListener, "");

听众:

IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {

    @Override
    public void onIabPurchaseFinished(IabResult result, Purchase info) {
        System.out.println("Purchase Finish heard something");

        if (result.isFailure()) {
             Log.d(TAG, "Error purchasing: " + result);
             return;
        } else{
                Log.d(TAG,"Success!");
             }


    }
};

共有3个答案

张嘉
2023-03-14


受@Ghulam回答的启发,我意识到onActivityResult活动不会自动调用片段的onActivityResult,所以我必须手动执行。

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(mCurrentFragment!= null){
            mCurrentFragment.onActivityResult(requestCode, resultCode, data);
        }
    }
孔飞舟
2023-03-14

我刚刚发现了另一件重要的事情:用于启动购买流的requestCode必须是

我使用"new Random(). nextInt()"来生成一个随机请求代码,有时它工作,有时它不工作。

http://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.意图,int)

贡俊
2023-03-14

尝试将此添加到调用mHelper.launchPurchaseFlow(...)的活动中:

    @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    Log.d(TAG, "onActivityResult(" + requestCode + "," + resultCode + "," + data);

    // Pass on the activity result to the helper for handling
    if (!mHelper.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.");
    }
}
 类似资料:
  • 我已经为云消息实现了Firebase: https://firebase.google.com/docs/cloud-messaging/android/client#sample-登记册 除了FireBaseInstancedService,我已经完成了所有步骤。永远不会调用onTokenRefresh。 firebase在日志中的唯一消息是: 我该怎么办才能拿到这个代币?

  • 拨打电话     拨打电话给 Skype 联系人。开始通话前,需先让支援PSP™版 Skype 的音频输入设备连接PSP™主机。 从联系人名单选择拨打对象 1. 进入 Skype 的选单画面后选择(联系人)。 2. 从联系人名单中选择电话的拨打对象。 可拨打电话给登入状态为(在线)等可通话状态的联系人。 开始呼叫后,会显示对方的名字或 Skype 账号。对方回复后即可开始通话。 提示 透过 Sky

  • 我的electron应用程序中有一个按钮,上面写着“打开文件”,当你点击它时,打开文件对话框就会出现,我可以选择一个文件。 但是,当我从应用程序工具栏中单击菜单项时,如何打开“打开文件对话框”? 这是工具栏菜单子菜单中的我的标签: 我想做这样的事情: 但没有“开放”这样的角色。 如何实现打开打开文件对话框的单击事件? Main.js打开文件部分: index.js:

  • 我能用twilio连接两个电话号码吗? 这是我对我的问题的解释。 我会用我的twilio电话号码打给探员 如果代理和客户端都可用,我想连接它们。 有可能吗? 我知道呼叫转移,但它可以在代理打电话给我时使用。 似乎有一些源代码可用于此。

  • 我试着用我的Flutter应用程序打电话。用以下代码: 我在GitHub Flatter repo上找到了这个函数:https://github.com/flutter/flutter/issues/4856 但是这对我不起作用。这个功能还在Flutter中吗?在哪个包中?或者有更好的选择从我的应用程序打电话吗?

  • 我是新的Android和试图研发应用程序快速帮助。一旦用户双击电源按钮,我希望我的应用程序为两种情况直接呼叫救护车(屏幕打开/关闭)。我已经写了这段代码,但它不起作用。任何帮助将不胜感激。提前谢谢你。:) Android显示 我的电话服务。JAVA MyReceiver.java 主要活动。JAVA