admin
6 天以前 7f0825f8195a522ed7e8bcdb6347f3a719e06c74
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package com.weikou.beibeivideo.util.ad;
 
import android.content.Context;
import android.util.Log;
 
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.lcjian.library.util.common.AndroidManifestUtil;
import com.lcjian.library.util.common.DeviceUtil;
import com.weikou.beibeivideo.R;
import com.weikou.beibeivideo.entity.ad.AdPositionEnum;
 
/**
 * 可以用一个单例来保存TTAdManager实例,在需要初始化sdk的时候调用
 */
public class TTAdManagerHolder {
 
    private static final String TAG = "TTAdManagerHolder";
 
 
    public static TTAdManager get() throws Exception {
        if (!TTAdSdk.isInitSuccess()) {
            throw new Exception("TTAdSdk is not init, please check.");
        }
        return TTAdSdk.getAdManager();
    }
 
    public static void init(Context context, TTAdSdk.Callback initCallback) {
        doInit(context, initCallback);
    }
 
    //step1:接入网盟广告sdk的初始化操作,详情见接入文档和穿山甲平台说明
    private static void doInit(Context context, TTAdSdk.Callback initCallback) {
        if (!TTAdSdk.isInitSuccess()) {
            try {
                TTAdSdk.init(context, buildConfig(context));
                TTAdSdk.start(initCallback);
            } catch (Exception e) {
 
            }
        } else {
            initCallback.success();
        }
    }
 
    private static TTAdConfig buildConfig(Context context) {
        TTAdConfig.Builder builder = new TTAdConfig.Builder()
                .appId("5095354")
                .appName(context.getString(R.string.app_name))
                .titleBarTheme(TTAdConstant.TITLE_BAR_THEME_DARK)
                .allowShowNotify(true) //是否允许sdk展示通知栏提示
                .debug(false) //测试阶段打开,可以通过日志排查问题,上线时去除该调用
                .directDownloadNetworkType(null)
                .supportMultiProcess(false)//是否支持多进程
                .customController(new TTCustomController() {
                    @Override
                    public boolean isCanUseLocation() {
                        return false;
                    }
 
                    @Override
                    public boolean isCanUsePhoneState() {
                        return false;
                    }
 
                    @Override
                    public LocationProvider getTTLocation() {
                        return null;
                    }
 
 
                    @Override
                    public boolean isCanUseAndroidId() {
                        return false;
                    }
 
                    @Override
                    public String getDevImei() {
                        return DeviceUtil.getImeiCache(context);
                    }
 
                    @Override
                    public boolean alist() {
                        if(AndroidManifestUtil.isHonorChannel(context)){
                            return false;
                        }
                        return super.alist();
                    }
                });
        //.httpStack(new MyOkStack3())//自定义网络库,demo中给出了okhttp3版本的样例,其余请自行开发或者咨询工作人员。
        //if (AdUtil.getAdType(context, AdPositionEnum.splashHotStart) != null) {
        //  builder.directDownloadNetworkType(TTAdConstant.NETWORK_STATE_WIFI);
        //}
 
        return builder.build();
    }
}