admin
2022-08-09 399ac289f80b7a40aa4210341db6b447cacdcf14
app/src/main/java/com/tejia/lijin/app/util/ad/TTAdManagerHolder.java
@@ -2,12 +2,15 @@
import android.content.Context;
import com.bytedance.sdk.openadsdk.LocationProvider;
import com.bytedance.sdk.openadsdk.TTAdConfig;
import com.bytedance.sdk.openadsdk.TTAdConstant;
import com.bytedance.sdk.openadsdk.TTAdManager;
import com.bytedance.sdk.openadsdk.TTAdSdk;
import com.bytedance.sdk.openadsdk.TTCustomController;
import com.tejia.lijin.app.R;
import com.tejia.lijin.app.util.Constant;
import com.wpc.library.util.common.DeviceUtil;
/**
 * 可以用一个单例来保存TTAdManager实例,在需要初始化sdk的时候调用
@@ -24,35 +27,80 @@
        return TTAdSdk.getAdManager();
    }
    public static void init(Context context) {
        doInit(context);
    public static void init(Context context,TTAdSdk.InitCallback initCallback) {
        doInit(context,initCallback);
    }
    //step1:接入网盟广告sdk的初始化操作,详情见接入文档和穿山甲平台说明
    private static void doInit(Context context) {
        if (!sInit) {
    private static void doInit(Context context, TTAdSdk.InitCallback initCallback) {
        if (!TTAdSdk.isInitSuccess()) {
            try {
                TTAdSdk.init(context, buildConfig(context));
                sInit = true;
            } catch (Exception e) {
                TTAdSdk.init(context, buildConfig(context), initCallback);
            } catch (Exception e) {
                e.printStackTrace();
            }
        } else {
            initCallback.success();
        }
    }
    private static TTAdConfig buildConfig(Context context) {
    private static TTAdConfig buildConfig(final Context context) {
        return new TTAdConfig.Builder()
                .appId(Constant.CSJ_APP_ID)
                .useTextureView(true) //使用TextureView控件播放视频,默认为SurfaceView,当有SurfaceView冲突的场景,可以使用TextureView
                .appName(context.getString(R.string.app_name))
                .titleBarTheme(TTAdConstant.TITLE_BAR_THEME_DARK)
                .allowShowNotify(true) //是否允许sdk展示通知栏提示
                .allowShowPageWhenScreenLock(true) //是否在锁屏场景支持展示广告落地页
                .debug(true) //测试阶段打开,可以通过日志排查问题,上线时去除该调用
                .directDownloadNetworkType(TTAdConstant.NETWORK_STATE_WIFI)
                .supportMultiProcess(true)//是否支持多进程
                .asyncInit(true)
                .needClearTaskReset()
                .supportMultiProcess(false)//是否支持多进程
                .customController(new TTCustomController() {
                    @Override
                    public boolean isCanUseLocation() {
                        return false;
                    }
                    @Override
                    public LocationProvider getTTLocation() {
                        return super.getTTLocation();
                    }
                    @Override
                    public boolean isCanUsePhoneState() {
                        return false;
                    }
                    @Override
                    public String getDevImei() {
                        return DeviceUtil.getImeiCache(context);
                    }
                    @Override
                    public boolean isCanUseWifiState() {
                        return false;
                    }
                    @Override
                    public String getMacAddress() {
                        return super.getMacAddress();
                    }
                    @Override
                    public boolean isCanUseWriteExternal() {
                        return false;
                    }
                    @Override
                    public String getDevOaid() {
                        return super.getDevOaid();
                    }
                    @Override
                    public boolean isCanUseAndroidId() {
                        return false;
                    }
                }).asyncInit(true)
                //.httpStack(new MyOkStack3())//自定义网络库,demo中给出了okhttp3版本的样例,其余请自行开发或者咨询工作人员。
                .build();
    }