cocos2d-x 3.0學習-Android中集成Admob插頁廣告

一、主要步驟

  • 創建一個免費的Admob賬戶: (http://www.google.com/ads/admob/39)[http://www.google.com/ads/admob/39]
  • 創建一個新的app ID,並設置類型爲插頁廣告的AdMob廣告單元
  • 導入Google Play services,在eclipse中選擇Windows -> Android SDK Manager -> Extras -> “Google Play services” -> Install packages
  • 修改AndroidManifest.xml文件新增如下代碼:

AndroidManifest.xml

  1. <meta-data android:name="com.google.android.gms.version"
  2. android:value="@integer/google_play_services_version"/>
  3. <activity android:name="com.google.android.gms.ads.AdActivity"
  4. android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
  5. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  • 修改AppActivity.java類如下:

AppActivity.java

  1. public class AppActivity extends Cocos2dxActivity {
  2.  
  3. private static AppActivity _appActiviy;
  4. private static final String AD_UNIT_ID = "your-ad-unit-id"; //你自己廣告單元的ID
  5. private static InterstitialAd interstitial;
  6.  
  7.  
  8.  
  9. @Override
  10. protected void onCreate(Bundle savedInstanceState) {
  11. super.onCreate(savedInstanceState);
  12.  
  13. getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
  14.  
  15. interstitial = new InterstitialAd(this);
  16. interstitial.setAdUnitId(AD_UNIT_ID);
  17. _appActiviy = this;
  18. AdRequest adRequest = new AdRequest.Builder()
  19. .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
  20. .addTestDevice("HASH_DEVICE_ID")
  21. .build();
  22.  
  23. interstitial.loadAd(adRequest);
  24.  
  25. }
  26. public static void showInterstitial(){
  27. _appActiviy.runOnUiThread(new Runnable() {
  28.  
  29. @Override
  30. public void run() {
  31. if (interstitial.isLoaded()) {
  32. interstitial.show();
  33. }
  34. }
  35. });
  36.  
  37. }
  38.  
  39. }
  • 最後添加cpp代碼,這與橫幅廣告一樣:

AdmobHelper.h

  1. #ifndef __ADMOB_HELPER_H_
  2. #define __ADMOB_HELPER_H_
  3.  
  4. class AdmobHelper
  5. {
  6. public:
  7. static void hideAd();
  8. static void showAd();
  9. static bool isAdShowing;
  10.  
  11. };
  12. #endif // __ADMOB_HELPER_H_

AdmobHelper.cpp

  1. #include "AdmobHelper.h"
  2. #include "cocos2d.h"
  3.  
  4. bool AdmobHelper::isAdShowing = true;
  5.  
  6. #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
  7.  
  8. #include "platform/android/jni/JniHelper.h"
  9. #include <jni.h>
  10. //#include <android/log.h>
  11.  
  12.  
  13. const char* AppActivityClassName = "org/cocos2dx/cpp/AppActivity";
  14.  
  15. void AdmobHelper::hideAd()
  16. {
  17. cocos2d::JniMethodInfo t;
  18. if (cocos2d::JniHelper::getStaticMethodInfo(t, AppActivityClassName, "hideAd", "()V"))
  19. {
  20.  
  21. t.env->CallStaticVoidMethod(t.classID, t.methodID);
  22. t.env->DeleteLocalRef(t.classID);
  23. isAdShowing = false;
  24. }
  25. }
  26.  
  27.  
  28.  
  29. void AdmobHelper::showAd()
  30. {
  31.  
  32. cocos2d::JniMethodInfo t;
  33. if (cocos2d::JniHelper::getStaticMethodInfo(t, AppActivityClassName, "showAd", "()V"))
  34. {
  35.  
  36. t.env->CallStaticVoidMethod(t.classID, t.methodID);
  37. t.env->DeleteLocalRef(t.classID);
  38. isAdShowing = true;
  39. }
  40.  
  41. }
  42.  
  43.  
  44. #else
  45.  
  46.  
  47. void AdmobHelper::hideAd()
  48. {
  49. CCLOG("hideAd() called");
  50. isAdShowing = false;
  51. return; //nothing
  52. }
  53.  
  54.  
  55. void AdmobHelper::showAd()
  56. {
  57. CCLOG("showAd() called");
  58. isAdShowing = true;
  59. return; //nothing;
  60.  
  61. }
  62.  
  63. #endif

總結

簡單講述cocos2d-x-3在android中添加插頁廣告的步驟。

##文檔信息

 2014-08-17 19:00:00

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章