一、主要步骤
- 创建一个免费的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
<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"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
- 修改AppActivity.java类如下:
AppActivity.java
public class AppActivity extends Cocos2dxActivity { private static AppActivity _appActiviy; private static final String AD_UNIT_ID = "your-ad-unit-id"; //你自己广告单元的ID private static InterstitialAd interstitial; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); interstitial = new InterstitialAd(this); interstitial.setAdUnitId(AD_UNIT_ID); _appActiviy = this; AdRequest adRequest = new AdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .addTestDevice("HASH_DEVICE_ID") .build(); interstitial.loadAd(adRequest); } public static void showInterstitial(){ _appActiviy.runOnUiThread(new Runnable() { @Override public void run() { if (interstitial.isLoaded()) { interstitial.show(); } } }); } }
- 最后添加cpp代码,这与横幅广告一样:
AdmobHelper.h
#ifndef __ADMOB_HELPER_H_ #define __ADMOB_HELPER_H_ class AdmobHelper { public: static void hideAd(); static void showAd(); static bool isAdShowing; }; #endif // __ADMOB_HELPER_H_
AdmobHelper.cpp
#include "AdmobHelper.h" #include "cocos2d.h" bool AdmobHelper::isAdShowing = true; #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) #include "platform/android/jni/JniHelper.h" #include <jni.h> //#include <android/log.h> const char* AppActivityClassName = "org/cocos2dx/cpp/AppActivity"; void AdmobHelper::hideAd() { cocos2d::JniMethodInfo t; if (cocos2d::JniHelper::getStaticMethodInfo(t, AppActivityClassName, "hideAd", "()V")) { t.env->CallStaticVoidMethod(t.classID, t.methodID); t.env->DeleteLocalRef(t.classID); isAdShowing = false; } } void AdmobHelper::showAd() { cocos2d::JniMethodInfo t; if (cocos2d::JniHelper::getStaticMethodInfo(t, AppActivityClassName, "showAd", "()V")) { t.env->CallStaticVoidMethod(t.classID, t.methodID); t.env->DeleteLocalRef(t.classID); isAdShowing = true; } } #else void AdmobHelper::hideAd() { CCLOG("hideAd() called"); isAdShowing = false; return; //nothing } void AdmobHelper::showAd() { CCLOG("showAd() called"); isAdShowing = true; return; //nothing; } #endif
总结
简单讲述cocos2d-x-3在android中添加插页广告的步骤。
##文档信息
- 版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0
- 原文网址:http://www.cocosk.com/articles/2014⁄8/17/cocos2d-x-3-android-Admob-InterstitialAd.html
- 作者:卧雪Sirk