admin
2022-01-28 760aee20870a34e6130a1c12237c5b747e2b00bd
MGVideo/src/com/mugua/mgvideo/MGVideoApplication.java
@@ -1,6 +1,7 @@
package com.mugua.mgvideo;
import android.Manifest;
import android.app.ActivityManager;
import android.app.Application;
import android.content.Context;
import android.content.SharedPreferences;
@@ -11,11 +12,19 @@
import android.os.Build;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.webkit.WebView;
import com.alibaba.android.arouter.launcher.ARouter;
import com.alibaba.baichuan.android.trade.AlibcTradeSDK;
import com.alibaba.baichuan.android.trade.callback.AlibcTradeInitCallback;
import com.baidu.mobads.AppActivity;
import com.bytedance.novel.pangolin.NovelConfig;
import com.bytedance.novel.pangolin.NovelSDK;
import com.bytedance.novel.pangolin.PangolinDocker;
import com.bytedance.novel.pangolin.data.NormalFontType;
import com.bytedance.novel.pangolin.data.ReaderFontType;
import com.bytedance.sdk.dp.DPSdk;
import com.bytedance.sdk.dp.DPSdkConfig;
import com.bytedance.sdk.openadsdk.TTAdSdk;
import com.fun.xm.FSPlayer;
import com.funshion.playsdk.callback.FunshionPlayInitCallback;
@@ -40,6 +49,7 @@
import com.umeng.commonsdk.UMConfigure;
import com.umeng.socialize.PlatformConfig;
import com.yeshi.base.utils.BeibeiConstant;
import com.yeshi.base.utils.ad.AdUtil;
import com.yeshi.base.utils.ad.CSJConstant;
import com.yeshi.base.utils.ad.GDTConstant;
import com.yeshi.base.utils.ad.TTAdManagerHolder;
@@ -146,6 +156,30 @@
        ARouter.init(application);
        ARouter.openDebug();
        ARouter.openLog();
        initNovel(application);
        initDPSDK(application);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
            String processName = getProcessName(application);
            String packageName = application.getPackageName();
            if (!packageName.equals(processName)) {
                WebView.setDataDirectorySuffix(processName);
            }
        }
    }
    private static String getProcessName(Context context) {
        if (context == null) return null;
        ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        for (ActivityManager.RunningAppProcessInfo processInfo : manager.getRunningAppProcesses()) {
            if (processInfo.pid == android.os.Process.myPid()) {
                return processInfo.processName;
            }
        }
        return null;
    }
    private static void initFunshion(Application application) {
@@ -284,6 +318,53 @@
    }
    private static void initNovel(Application application) {
        if (!AdUtil.isCanInitCSJ()) {
            return;
        }
        NovelConfig config = new NovelConfig.Builder()
                .appName(application.getString(R.string.app_name)) //接入小说SDK的App的英文名 必填
                .appVersionName(PackageUtils2.getVersionName(application)) //接入小说SDKApp的版本名称 必填
                .appVersionCode(PackageUtils2.getVersionCode(application)) //接入小说SDK App的版本号 必填
                .channel(ManifestDataUtil.getAppMetaData(application, "UMENG_CHANNEL")) //渠道号维度。开发者自定义字符串即可(建议不要包含test)。选填
                .initInnerApplog(true) // 是否使用小说sdk来初始化applog sdk。默认为false,需要开发者在App中单独初始化applog sdk,且必须在小说sdk之前初始化。
                .initInnerOpenAdSdk(true) //是否使用小说sdk来初始化广告sdk,如果为true,需要设置siteId。默认为false,需开发者在App中单独初始化广告sdk并在小说sdk之前初始化。
                .jsonFileName(application.getString(R.string.idp_file))//json配置文件的名称 必填
                .normalFontSize(NormalFontType.NORMAL) //全局字号大小 可选
                .readerFontSize(ReaderFontType.TWO) //阅读器字号大小 可选
                .build();
        NovelSDK.INSTANCE.attach(new PangolinDocker(config), application);
    }
    private static boolean dpSDKIninted;
    public static void initDPSDK(Application application) {
        if (!AdUtil.isCanInitCSJ()) {
            return;
        }
        if (!dpSDKIninted) {
            DPSdkConfig.Builder configBuilder = new DPSdkConfig.Builder()
                    .debug(true)
                    .preloadDraw(true)
                    .needInitAppLog(false)
                    .setIsAndroidx(true)
                    .initListener(new DPSdkConfig.InitListener() {
                        @Override
                        public void onInitComplete(boolean b) {
                            dpSDKIninted = b;
                        }
                    }) //接入了红包功能需要传入的参数,没有接入的话可以忽略该配置
//                    .luckConfig(new DPSdkConfig.LuckConfig().application(application).enableLuck(false))
//                    .liveConfig(new DPSdkConfig.LiveConfig())
                    ;//若您需要接入直播,参考「直播接入文档」;否则可忽略此参数。
            DPSdk.init(application, application.getString(R.string.idp_file), configBuilder.build());
        }
    }
    //初始化监听
    public interface InitListener {
        public void onFinish();