Próbuję skonfigurować rozliczenia w aplikacji dla mojej pierwszej aplikacji i korzystam ze SKU android.test.purchased. Zakup przychodzi i udaje mi się umieścić SKU w moim ekwipunku, ale, jak mówi tytuł, onIabPurchaseFinished nigdy nie jest wywoływany.
Myślę, że może to mieć coś wspólnego z tym dziennikiem: „Nie można zapisać, który widok ma fokus, ponieważ widok skoncentrowany com.android.internal.policy.impl.PhoneWindow$DecorView@406743d0 nie ma identyfikatora”. Pojawia się tuż przed przejściem do Google Play. Nie jestem jednak pewien, co to oznacza ...
Rozpoczęcie zakupu:
mHelper.launchPurchaseFlow(this, sku, 10001, mPurchaseFinishedListener, "");
A słuchacz:
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!");
}
}
};
android
in-app-billing
AAAton
źródło
źródło
Odpowiedzi:
Spróbuj dodać to do działania, które wywołuje
mHelper.launchPurchaseFlow(..)
:źródło
Właśnie odkryłem kolejną ważną rzecz: kod requestCode używany do uruchomienia przepływu zakupów musi być> = 0!
użyłem "new Random (). nextInt ()" do wygenerowania losowego requestCode i czasami to działało, czasami nie. teraz dowiedziałem się w poniższej dokumentacji, że requestCode nie powinien być liczbą ujemną:
http://developer.android.com/reference/android/app/Activity.html#startActivityForResult%28android.content.Intent,%20int%29
źródło
Miałem ten sam problem i onActivityResult też nie został wywołany.
Zainspirowany odpowiedzią @ Ghulama zdałem sobie sprawę, że aktywność onActivityResult nie wywołuje automatycznie onActivityResult fragmentu, więc musiałem to zrobić ręcznie.
źródło
Musisz wywołać chronione void onActivityResult (); W Twojej aktywności rodzica zamiast w MainActivity (Trivial Drive), skąd dzwonisz do swojej MainActivity, czyli Trivial Drive Activity.
otrzymasz wartości kodu wyniku -1, jeśli zakup się powiedzie, w przeciwnym razie 0.
źródło
Miałem do czynienia z tym samym problemem i zaakceptowane rozwiązanie zostało już wdrożone, ale nie mogłem powiedzieć, co go powoduje. Przejście do nowej biblioteki rozliczeń Google Play 1.0 (wydanej 19 września 2017 r.) Rozwiązało ten problem!
Mam nadzieję, że poniższe linki pomogą komuś, kto chciałby wdrożyć nową bibliotekę:
Wpis na blogu Google dotyczący wydania
Film Google na youtube
Play Billing Library Training Class
Próbka Google Trivial Drive v2
Play Billing Library codelab opublikowana podczas konferencji Google I / O 2017
Play Billing Library Docs
Oficjalne odniesienie do klas i metod
Publikuje notatki
źródło