2013-08-18 21 views
5

Mój onIabPurchaseFinishedListener nigdy nie jest wywoływany, mimo że kliknę teraz przycisk "Kup teraz" w oknie dialogowym "inapp", polecenie logcat nie drukuje niczego.onIabPurchaseFinishedListener nigdy nie jest wywoływany

public class CreateAlbumActivity extends Activity { 
IabHelper mHelper; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_create_album); 
     mHelper = new IabHelper(this, Global.inapp); 

    mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() { 
      public void onIabSetupFinished(IabResult result) { 
       if (!result.isSuccess()) { 
       // Oh noes, there was a problem. 
       // AlertDialogHelper.CreateNormalDialog(context, "Failed to set In-App Billing: " +result); 
       Log.d(Global.TAG, "Problem setting up In-app Billing: " + result); 
       return; 
       }    
       // Hooray, IAB is fully set up! 

      } 
     }); 
    } 
public void createAlbumEvent(){ 

        mHelper.launchPurchaseFlow(CreateAlbumActivity.this, "android.test.purchased", 10001, 
          mPurchaseFinishedListener, "bGoa+V7g/yqDXvKRqq"); 


    } 
    IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener 
    = new IabHelper.OnIabPurchaseFinishedListener() { 
    public void onIabPurchaseFinished(IabResult result, Purchase purchase) 
    { 
     if (result.isFailure()) { 
      Log.d(Global.TAG, "Error purchasing: " + result); 
      return; 
     }  
     Log.d(Global.TAG, "SUCCESS PURCHASE!"); 
    } 
    }; 
    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     Log.d(Global.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(Global.TAG, "onActivityResult handled by IABUtil."); 
     } 
    } 
} 

Odpowiedz

8

Dobra, więc po spędzeniu godzin w ciągu godziny około stara się rozwiązać ten problem, natknąłem następującej odpowiedzi: https://stackoverflow.com/a/17411617/1203043

Problem polegał na tym, że moja działalność ma flagę „bez historii”. Jeśli usuniemy tę flagę z działania, to działa dobrze. Naprawdę nie mam pojęcia, dlaczego tak się dzieje, ale oto jest.

Mam nadzieję, że nigdy nie przejdziecie przez koszmar, przez który przeszedłem.

3

znalazłem poniższy link pomocny: onIabPurchaseFinished never called.

Problem polega na tym, że aktywność nie obsługuje onActivityResult prawidłowo i nie ma wzmianki o tym w poradniku In App zakupów.

+0

Dziękuję! to mnie uratowało ... – afadfadf

Powiązane problemy