整体思路:在安卓里面打包aar,再集成到unity里面,用unity调安卓方法来达到目的
1.下载腾讯广点通的SDK,地址
2.新建一个安卓项目(能打包aar就行,具体百度安卓跟unity交互)
3.把腾讯demo里面的lib文件夹下面的SDK拿到新项目lib文件夹里面,把Constants类也复制进来
4.找到腾讯demo里面app的bulid.gradle,全部复制到新项目中,当然apply plugin: ‘com.android.library’ 这个不要忘了
5.然后开始测试,我用的是激励视频的代码,就直接复制腾讯demo里面对应的类就行
6.然后删除跟界面有关的bug
7.编写跟unity交互的方法
public void testCom(final String s){
Toast.makeText(MainActivity.this, “Unity调安卓方法成功”, Toast.LENGTH_LONG).show();
}
public void loadRewardAD(){
Toast.makeText(MainActivity.this, “loadRewardAD被调用”, Toast.LENGTH_LONG).show();
rewardVideoAD = new RewardVideoAD( MainActivity.this,“你的APPID”,“你的广告位ID”,this,true);
adLoaded = false;
videoCached = false;
// 2. 加载激励视频广告
rewardVideoAD.loadAD();
}
public void showRewardAD() {
try {
// 3. 展示激励视频广告
if (adLoaded && rewardVideoAD != null) {//广告展示检查1:广告成功加载,此处也可以使用videoCached来实现视频预加载完成后再展示激励视频广告的逻辑
if (!rewardVideoAD.hasShown()) {//广告展示检查2:当前广告数据还没有展示过
long delta = 1000;//建议给广告过期时间加个buffer,单位ms,这里demo采用1000ms的buffer
//广告展示检查3:展示广告前判断广告数据未过期
if (SystemClock.elapsedRealtime() < (rewardVideoAD.getExpireTimestamp() - delta)) {
// rewardVideoAD.showAD();
rewardVideoAD.showAD(MainActivity.this);
} else {
Toast.makeText(MainActivity.this, “激励视频广告已过期,请再次请求广告后进行广告展示!”, Toast.LENGTH_LONG).show();
}
} else {
Toast.makeText(MainActivity.this, “此条广告已经展示过,请再次请求广告后进行广告展示!”, Toast.LENGTH_LONG).show();
}
} else {
Toast.makeText(MainActivity.this, “成功加载广告后再进行广告展示!”, Toast.LENGTH_LONG).show();
}
} catch (Exception ex) {
Toast.makeText(MainActivity.this, “显示广告失败!” + ex.getMessage(), Toast.LENGTH_LONG).show();
}
}
8.把回调方法里面的log全都注释掉,这是个坑
9.然后打包aar,按照unity跟安卓交互的规则把文件拿到unity里面,文件复制完成大概就是这样
10.然后开始自己写方法调广告吧
11.打包的时候偶尔会出bug,百度解决
上面这个问题没找到具体的解决方法,先使用切换这个API的方式来解决吧(切换版本可以成功打包出来)
2020年4月26日11点37分