Admob LibGDX Реализация вознаграждения - PullRequest
0 голосов
/ 23 ноября 2018

Добрый день, не могли бы вы помочь.Я использую LibGDX и AdMob.

У меня есть интерфейс:

public interface AdService {

    void showRewarded();
    boolean rewardedVideoAdIsLoaded();

}

AndroidLauncher.java:

public class AndroidLauncher extends AndroidApplication implements AdService{
private static final String AD_UNIT_ID_REWARDED = "ca-app-pub-ХХХХХХХХХХХХХ/ХХХХХХХХХ";
protected RewardedVideoAd rewardedVideoAd;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
    initialize(new Game(this), config);


    MobileAds.initialize(this, "ca-app-pubXXXXXXXXXX~XXXXXXXXXXXXXXXX");
    rewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);
    rewardedVideoAd.loadAd(AD_UNIT_ID_REWARDED, new AdRequest.Builder().build());
    rewardedVideoAd.setRewardedVideoAdListener(new RewardedVideoAdListener() {
        @Override
        public void onRewardedVideoAdLoaded() {

        }

        @Override
        public void onRewardedVideoAdOpened() {

        }

        @Override
        public void onRewardedVideoStarted() {

        }

        @Override
        public void onRewardedVideoAdClosed() {
            rewardedVideoAd.loadAd(AD_UNIT_ID_REWARDED, new AdRequest.Builder().build());
        }

        @Override
        public void onRewarded(RewardItem rewardItem) {

        }

        @Override
        public void onRewardedVideoAdLeftApplication() {

        }

        @Override
        public void onRewardedVideoAdFailedToLoad(int i) {

        }

        @Override
        public void onRewardedVideoCompleted() {

        }
    });
}

@Override
public void showRewarded() {
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            if(rewardedVideoAd.isLoaded())
                rewardedVideoAd.show();
            else
                rewardedVideoAd.loadAd(AD_UNIT_ID_REWARDED, new AdRequest.Builder().build());
        }
    });
}

@Override
public boolean rewardedVideoAdIsLoaded() {
    return rewardedVideoAd.isLoaded();
}
  }

Затем я вызываю showRewarded() в игре для показа рекламы.

ad.addListener(new InputListener(){

            @Override
            public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
                return true;
            }

            @Override
            public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
                  game.adService.showRewarded();
            }
        });

Хочу, чтобы бонус начислялся после закрытия вознагражденного видео?Как мне это сделать?Я предполагаю, что следует использовать следующий метод onRewardedVideoAdClosed().Но я не могу понять, как я могу это сделать.

...