2017-06-06 4 views
0

Ich habe nach einem Beispiel gesucht, aber es nicht gefunden.belohnte Videoanzeigebeispiel in libGDX

Ich fand einen ohne libgdx und einige, warum es nicht funktionierte, aber app stürzte auch nicht ab.

public class AndroidLauncher extends AndroidApplication implements AdHandler, RewardedVideoAdListener{ 

    ... 

    RewardedVideoAd rewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this); 
    rewardedVideoAd.setRewardedVideoAdListener(this); 

    rewardedSetup(); 

    private void rewardedSetup(){ 
     if (!rewardedVideoAd.isLoaded()){ 
      rewardedVideoAd.loadAd("ca-app-pub-683510441556959xxxxxxxxx", new AdRequest.Builder().build()); 
     } 

     @Override 
     public void onRewardedVideoAdLoaded() { 
      if(rewardedVideoAd.isLoaded()){ 
       rewardedVideoAd.show(); 
      } 
     } 

     @Override 
     public void onRewarded(RewardItem rewardItem) { 
      rewarded(true); 
     } 
    } 
} 

Und es zeigt einfach nicht, vielleicht ist es jedem passiert? (Mein wahrer Code ist voll von Handler und Sachen, so habe ich es nicht alles, ich denke, anderer Code hat 0 Auswirkungen auf diesem Problem)

Antwort

1
private static final String APP_ID="ca-app-pub-XXXXXX~XXXXX"; 
private static final String AD_UNIT_ID="ca-app-pub-XXXXX/XXXXXXX"; 
private RewardedVideoAd mAd;  

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

    ... 

    MobileAds.initialize(this, APP_ID); 

    mAd = MobileAds.getRewardedVideoAdInstance(this); 
    mAd.setRewardedVideoAdListener(new RewardedVideoAdListener() { 
     @Override 
     public void onRewardedVideoAdLoaded() { 

     } 

     @Override 
     public void onRewardedVideoAdOpened() { 

     } 

     @Override 
     public void onRewardedVideoStarted() { 

     } 

     @Override 
     public void onRewardedVideoAdClosed() { 
      loadRewardedVideoAd(); 
     } 

     @Override 
     public void onRewarded(RewardItem rewardItem) { 

      // call rewards method from here. 
      loadRewardedVideoAd(); // Load for next Reward Point 

     } 

     @Override 
     public void onRewardedVideoAdLeftApplication() { 

     } 

     @Override 
     public void onRewardedVideoAdFailedToLoad(int i) { 

     } 
    }); 
    loadRewardedVideoAd(); 
} 

private void loadRewardedVideoAd() { 
    mAd.loadAd(AD_UNIT_ID, new AdRequest.Builder().build()); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 
    mAd.resume(this); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 
    mAd.pause(this); 
} 

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    mAd.destroy(this); 
} 

Set-up gemacht, müssen zwei Methoden, die Umsetzung von AdHandler, rufen diese beiden Methoden von core Modul.

public void showVideoAd(){ 
     runOnUiThread(new Runnable() { 
      public void run() { 

       if (mAd.isLoaded()) { 
        mAd.show(); 
       } else { 
        loadRewardedVideoAd(); 
       } 
      } 
     }); 
} 

public boolean hasVideoReward(){ 
    return mAd.isLoaded(); 
} 

Anruf hasVideoReward(), die Sie Panel zeigen Belohnung sagen oder nicht, und showVideoAd() Methode zeigen Belohnung Video.

Hoffentlich haben Sie diese Einträge in Ihrer AndroidManifest.xml Datei

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

<meta-data android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version" /> 

<activity android:name="com.google.android.gms.ads.AdActivity" 
      android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" 
      android:theme="@android:style/Theme.Translucent" /> 
+1

Ich habe mit Handler getan Kommunikation, aber das funktioniert auch, danke. –