方式一:
1. 在cocos2dx编译完成的项目(proj.android)加入 GDTUnionSDK.4.8.524.min.jar广点通jar包。
2. 添加权限声明
3.添加activity, service的声明
android:name="com.qq.e.comm.DownloadService"
android:exported="false" />
android:name="com.qq.e.ads.ADActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize" />4. 在AppActivity中添加广点通demo中显示插屏广告的方法, 并且添加一个静态的Handler成员变量.
private static Handler mHandler;
private InterstitialAD iad;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mHandler = new Handler(){
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case 1:
showAD();
break;
case 2:
showAsPopup();
break;
case 3:
closeAsPopup();
break;
default:
break;
}
};
};
}
private InterstitialAD getIAD() {
if (iad == null) {
iad = new InterstitialAD(this, Constants.APPID, Constants.InterteristalPosID);
}
return iad;
}
private void showAD() {
getIAD().setADListener(new AbstractInterstitialADListener() {
@Override
public void onNoAD(int arg0) {
Log.i("longer", "LoadInterstitialAd Fail:" + arg0);
}
@Override
public void onADReceive() {
Log.i("longer", "onADReceive");
iad.show();
}
});
iad.loadAD();
}
private void showAsPopup() {
getIAD().setADListener(new AbstractInterstitialADListener() {
@Override
public void onNoAD(int arg0) {
Log.i("longer", "LoadInterstitialAd Fail:" + arg0);
}
@Override
public void onADReceive() {
iad.showAsPopupWindow();
}
});
iad.loadAD();
}
private void closeAsPopup() {
iad.closePopupWindow();
}4. 添加静态方法, 提供给c++调用
/**
* c++中調用的方法
* @param what 1: 使用showAD方式展示插屏广告
* 2: 使用showAsPopup方式展示广告
* 3: 关闭popup广告
*/
public static void showAd(int what) {
mHandler.sendEmptyMessage(what);
}
5. 在cocos2dx工程中添加GDTAD.h和GDTAD.cpp文件,类容如下:
.h文件
#ifndef GDTAD_H
#define GDTAD_H
class GDTAD {
public:
/*
what 1 -- 10 插屏广告, 1 : 显示
what 11 -- 20 ......, 11: 显示
what 21 -- 30 ......, 21: 显示
*/
static void showAd(int what);
};
#endif //GDTAD_H
cpp文件
#include "GDTAD.h"
#include "cocos2d.h"
USING_NS_CC;
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include "platform/android/jni/JniHelper.h"
#include
const char* AppActivityCalssName = "org/cocos2dx/cpp/AppActivity";
void GDTAD::showAd(int what) {
cocos2d::JniMethodInfo jniShowAd;
if (cocos2d::JniHelper::getStaticMethodInfo(jniShowAd, AppActivityCalssName, "showAd", "(I)V")) {
jniShowAd.env->CallStaticVoidMethod(jniShowAd.classID, jniShowAd.methodID, what);
}
else {
log("jni:showAD false");
}
}
#else
void GDTAD::showAd(int what) {
log("jni:showAD");
return;
}
#endif
6. 在想要显示广告的地方调用GDTAD类的静态方法showAd进行广告的显示。
GDTAD::showAd(1);
7. 集成效果如app:
http://pan.baidu.com/s/1dFK5Uk5