2017-06-06 83 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

我已經做了處理通信已經這些條目,但是這也工作,謝謝。 –