112

私は最初のアプリのアプリ内課金を設定しようとしていて、android.test.purchasedskuを使用しています。購入が完了し、SKUを在庫に入れることができましたが、タイトルにあるように、onIabPurchaseFinishedが呼び出されることはありません。

このログと関係があると思います:「フォーカスされたビューcom.android.internal.policy.impl.PhoneWindow$DecorView@406743d0にはIDがないため、フォーカスのあるビューを保存できませんでした」。それは、GooglePlayに行く直前にポップアップします。それが何を意味するのかよくわかりませんが...

購入の開始:

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!");
             }


    }
};
4

5 に答える 5

206

を呼び出すアクティビティにこれを追加してみてください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.");
    }
}
于 2013-02-19T21:53:39.110 に答える