2017-06-06 184 views
0

我一直在寻找一个示例,但没有找到它。libGDX激励视频广告示例

我发现了一个没有libgdx,为什么它没有工作,但应用程序也没有崩溃。

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); 
     } 
    } 
} 

而且它根本不显示,也许它发生在任何人身上? (我真正的代码是完全处理程序之类的东西,所以我没有把它全部,我想其他的代码为0的效果在这个问题上)

回答

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); 
} 

的建立完成后,需要两个方法,是实施AdHandler,这两种方法将从core模块调用。

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

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

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

呼叫hasVideoReward(),告诉您展现奖励面板与否和showVideoAd()方法显示奖赏视频。

希望你在你的AndroidManifest.xml文件

<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

我已经做了处理通信已经这些条目,但是这也工作,谢谢。 –

相关问题