In-App Billing consumable product

  • Hi,


    Also ich versuche gerade In-App Billing V3 zu implementieren und habe es auch geschafft ein einmaligen kauf durchzuführen ---> (Test App) App öffnet sich Google Play "kauf Fenster" öffnet sich --> erfolgreicher kauf. Ich will aber dass die user unendlich viele coins kaufen können. Ich hab jetzt auch den code angepasst mit mHelper.consumeAsync(inventory.getPurchase("coins"), mConsumeFinishedListener); damit es wieder erhältlich ist (ist in allen tutorials so gemacht) aber an der App ändert sich nichts !!


    Hier mal mein code (manche Kommentare sind noch aus TrivalDriver aus dem ich das meiste kopiert hab ;) :



    Danke für Antworten :thumbup: :thumbup:

  • So wie es aussieht, ist das Beispiel allgemein nicht für den produktiven Einsatz bestimmt, da doch so manche Bugs wohl noch drin sind (jedenfalls nach den Github Issues).
    Ohne jetzt genau auf die schnelle deine Änderungen herauszuschauen, würde ich jetzt mal vorschlagen, dass du nochmal deine Implementierung mit den Developer Guides abgleichst.
    Vielleicht fällt dir ja ein Unterschied auf. Ansonsten gibt es auch einige Bibliotheken, die dir das meiste an Arbeit abnehmen wollen (z.B. https://github.com/serso/android-checkout).

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

  • Ja das habe ich aber es funktioniert immer noch nicht : die checkOwnedItems() Methode funktioniert wie es aussieht da ich dann bei makePurchase(); (in try catch) eine Exception kriege :


    can't start async operation (launchPurchaseFlow) because another async operation (refresh inventory) is in progress.


    Daher vermute ich dass die Prozesse von checkOwnedItems() noch nicht abgeschlossen sind. (check owned items habe ich damit wenn ein Fehler unterläuft und dass item gekauft aber nicht wieder gelöscht wird am Anfang gleich wieder gelöscht wird). Aber wie kann ich tracken ob die Prozesse abgeschlossen sind ?


    Ich versuche es jetzt mal mit getBuyIntent statt launchPurchaseFlow vielleicht funktioniert dass dann.

  • Da gabs dieses Issue zu. Ist noch offen. Solltest aber mit einem Flag eigentlich abfragen können, ob ein Async Task noch läuft oder das Ganze doch synced machen.
    Ein weiterer Pull-Request war der hier, ist aber gemergt. Ob da nun noch was fehlt, weiß ich nicht ...

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

  • Also jetzt funktioniert alles der erste Fehler war das ich makePurchase() gleich nach checkOwnedItems() aufgerufen habe obwohl der Prozess noch nicht abgeschlossen war :
    can't start async operation (launchPurchaseFlow) because another async operation (refresh inventory) is in progress.
    Dann habe ich makePurchase über einen Button aufgerufen es hat aber immer noch nicht funktioniert. Irgendwann fand ich heraus dass der listener nicht funktioniert hatte --> http://stackoverflow.com/a/14968203/4106137 das war die Antwort !

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!