写这篇博客主要是为了使用Eclipse导出Jar包和Res文件去给Unity调用。之前我写过一篇博客(https://www.cnblogs.com/weiqiangwaideshijie/p/7715861.html)是直接将Unity导出Android工程去接入SDK,现在换另外一种模式去接入SDK,使用的通讯框架还是之前的。
一 为了避免不必要的错误,我这边是用Unity去导出一个空的Android工程而不是直接在Eclipse去直接新建一个acivity,再去引用Unity的Classes.jar文件。用Eclipse打开unity导出的空的工程,然后将之前写的通讯框架导入进去,并且删除untiy自带的三个类
二 UnityPlayerActivity引用头条的库文件(箭头所指的),在将头条的Res文件给copy到UnityPlayerActivtiy里面,不要去覆盖,不然Unity自带的一些东西被覆盖掉,导致manifest里面找不到对应的配置和资源。
三 然后配置我们的Manifest清单文件,这个直接CopyDemo里面自己需要的配置就可以了。
四 以上的步骤,我们就把环境给配置好了,最后,按照文档去写入播放广告的代码。我这边直接入奖励广告。(下面有些和Unity交互代码是这个项目不需要的,看加粗倾斜的代码块)
MainActivity
package com.cw.androidsdk;
import android.os.Bundle;
import com.bytedance.sdk.openadsdk.AdSlot;
import com.bytedance.sdk.openadsdk.TTAdConfig;
import com.bytedance.sdk.openadsdk.TTAdConstant;
import com.bytedance.sdk.openadsdk.TTAdManager;
import com.bytedance.sdk.openadsdk.TTAdNative;
import com.bytedance.sdk.openadsdk.TTAdSdk;
import com.bytedance.sdk.openadsdk.TTAppDownloadListener;
import com.bytedance.sdk.openadsdk.TTFullScreenVideoAd;
import com.bytedance.sdk.openadsdk.TTRewardVideoAd;
import com.sdk.api.SDKAPI;
import com.sdk.api.SDKUtility;
import com.unity3d.player.UnityPlayer;
import com.unity3d.player.UnityPlayerActivity;
import java.util.UUID;
import org.json.JSONException;
import org.json.JSONObject;
import android.R.string;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.PixelFormat;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.text.TextUtils;
import android.util.Log;
import android.view.Window;
import android.widget.Toast;public classMainActivity extends UnityPlayerActivity
{public staticActivity CurrentActivity;public static MyHandler myHandler;//
privateTTAdNative mTTAdNative;privateTTRewardVideoAd mttRewardVideoAd;privateTTAdManager ttAdManager;
@Overrideprotected voidonCreate(Bundle arg0) {//TODO Auto-generated method stub
super.onCreate(arg0);
CurrentActivity=this;
myHandler=newMyHandler();//如果明确某个进程不会使用到广告SDK,可以只针对特定进程初始化广告SDK的content//if (PROCESS_NAME_XXXX.equals(processName)) {//TTAdSdk.init(context, config);//}
}
@Overrideprotected voidonStart() {
super.onStart();
}
@Overrideprotected voidonPause() {
super.onPause();
}
@Overrideprotected voidonResume() {
super.onResume();
}public voidonNewIntent(Intent newIntent){
super.onNewIntent(newIntent);
}
@Overrideprotected voidonStop() {
super.onStop();
}
@Overrideprotected voidonDestroy() {
super.onDestroy();
}
@Overrideprotected voidon