admin
2022-11-30 fd238846980b17d893d703ac8e56869bd3f23c89
BuWanVideo/src/com/weikou/beibeivideo/BeibeiVideoApplication.java
@@ -31,16 +31,20 @@
import com.bytedance.novel.pangolin.data.ReaderFontType;
import com.bytedance.sdk.dp.DPSdk;
import com.bytedance.sdk.dp.DPSdkConfig;
import com.bytedance.sdk.dp.IDPPrivacyController;
import com.bytedance.sdk.openadsdk.TTAdSdk;
import com.funshion.playsdk.register.IAuthCodeGetter;
import com.kwad.sdk.api.KsAdSDK;
import com.kwad.sdk.api.KsCustomController;
import com.kwad.sdk.api.SdkConfig;
import com.lcjian.library.util.ManifestDataUtil;
import com.lcjian.library.util.common.DeviceUtil;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import com.qq.e.comm.managers.GDTAdSdk;
import com.qq.e.comm.managers.setting.GlobalSetting;
import com.tencent.mm.opensdk.constants.ConstantsAPI;
import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.WXAPIFactory;
@@ -57,6 +61,7 @@
import com.weikou.beibeivideo.ui.ad.SplashAdActivity;
import com.weikou.beibeivideo.util.BeibeiConstant;
import com.weikou.beibeivideo.util.CrashHandler;
import com.weikou.beibeivideo.util.DebuggerUtils;
import com.weikou.beibeivideo.util.UserUtil;
import com.weikou.beibeivideo.util.ad.AdUtil;
import com.weikou.beibeivideo.util.ad.CSJConstant;
@@ -69,6 +74,10 @@
import org.apache.http.Header;
import org.greenrobot.eventbus.EventBus;
import org.json.JSONObject;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import androidx.multidex.MultiDex;
@@ -92,6 +101,27 @@
    }
    private static boolean inited = false;
    private static List<Activity> mActivitys = Collections.synchronizedList(new LinkedList<Activity>());
    public static void pushActivity(Activity activity) {
        mActivitys.add(activity);
    }
    public static void popActivity(Activity activity) {
        mActivitys.remove(activity);
    }
    public static void finishAllActivity() {
        if (mActivitys == null) {
            return;
        }
        for (Activity activity : mActivitys) {
            activity.finish();
        }
        mActivitys.clear();
    }
    //兼容4.4以下版本
    protected void attachBaseContext(Context newBase) {
@@ -154,6 +184,7 @@
            CrashHandler crashHandler = CrashHandler.getInstance();
            crashHandler.init(getApplicationContext());
        }
        application = this;
        instance = this;
        MultiDex.install(this);
@@ -176,12 +207,14 @@
    public static void init(final Application application, InitListener initListener) {
        Log.i(TAG, "系统初始化");
        inited = true;
        registerActivityListener(application);
        //防止动态代码注入
        DebuggerUtils.checkDebuggableInNotDebugModel(application);
        try {
            TelephonyManager manager = (TelephonyManager) application.getSystemService(TELEPHONY_SERVICE);
            Build bd = new Build();
            String model = bd.MODEL;
            BeibeiVideoApplication.deviceName = model;
            BeibeiVideoApplication.deviceNumber = manager.getDeviceId();
            BeibeiVideoApplication.deviceNumber = DeviceUtil.getImeiCache(application);
        } catch (Exception e) {
        }
@@ -198,9 +231,12 @@
        String description = ManifestDataUtil.getAppMetaData(application, "UMENG_CHANNEL");
        try {
            UMConfigure.setLogEnabled(false);
            UMConfigure.submitPolicyGrantResult(application, false);
            UMConfigure.init(application, application.getResources().getString(R.string.umeng_key), description, UMConfigure.DEVICE_TYPE_PHONE, null);
            // 选用AUTO页面采集模式
            MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO);
            UMConfigure.submitPolicyGrantResult(application, false);
        } catch (Throwable e) {
        }
@@ -214,6 +250,7 @@
        initCSJAd(application, initListener);
        initKSSDK(application);
        try {
            GlobalSetting.setEnableCollectAppInstallStatus(false);
            GDTAdSdk.init(application, BeibeiConstant.GDT_ID);
        } catch (Exception e) {
            e.printStackTrace();
@@ -293,9 +330,6 @@
        };
        //x5内核初始化接口
        QbSdk.initX5Environment(application, cb);
        QbSdk.canGetDeviceId(false);
        QbSdk.canGetAndroidId(false);
        QbSdk.canGetSubscriberId(false);
    }
@@ -328,7 +362,43 @@
                .appId("801000001") // 测试aapId,请联系快⼿平台申请正式AppId,必填
                .appName(appContext.getString(R.string.app_name)) // 测试appName,请填写您应⽤的名称,⾮必填
                .showNotification(true) // 是否展示下载通知栏
                .debug(true) // 是否开启sdk 调试⽇志 可选
                .debug(false)
                .customController(new KsCustomController() {
                    @Override
                    public boolean canReadLocation() {
                        return false;
                    }
                    @Override
                    public boolean canUsePhoneState() {
                        return false;
                    }
                    @Override
                    public boolean canUseOaid() {
                        return false;
                    }
                    @Override
                    public String getImei() {
                        return DeviceUtil.getImeiCache(appContext);
                    }
                    @Override
                    public boolean canUseMacAddress() {
                        return false;
                    }
                    @Override
                    public boolean canReadInstalledPackages() {
                        return false;
                    }
                    @Override
                    public List<String> getInstalledPackages() {
                        return DeviceUtil.getInstalledPackageNamesCache(appContext);
                    }
                })// 是否开启sdk 调试⽇志 可选
                .build());
    }
@@ -377,6 +447,32 @@
            DPSdkConfig.Builder configBuilder = new DPSdkConfig.Builder()
                    .debug(false)
                    .needInitAppLog(false)
                    .privacyController(new IDPPrivacyController() {
                        @Override
                        public boolean isCanUsePhoneState() {
                            return false;
                        }
                        @Override
                        public String getImei() {
                            return DeviceUtil.getImeiCache(application);
                        }
                        @Override
                        public String getImsi() {
                            return DeviceUtil.getImsiCache(application);
                        }
                        @Override
                        public boolean isCanUseAndroidId() {
                            return false;
                        }
                        @Override
                        public String getAndroidId() {
                            return super.getAndroidId();
                        }
                    })
                    .initListener(new DPSdkConfig.InitListener() {
                        @Override
                        public void onInitComplete(boolean b, String s) {
@@ -524,4 +620,57 @@
        public void onFinish();
    }
    private static void registerActivityListener(Application application) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
            application.registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
                @Override
                public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
                    /**
                     *  监听到 Activity创建事件 将该 Activity 加入list
                     */
                    pushActivity(activity);
                }
                @Override
                public void onActivityStarted(Activity activity) {
                }
                @Override
                public void onActivityResumed(Activity activity) {
                }
                @Override
                public void onActivityPaused(Activity activity) {
                }
                @Override
                public void onActivityStopped(Activity activity) {
                }
                @Override
                public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
                }
                @Override
                public void onActivityDestroyed(Activity activity) {
                    if (null==mActivitys||mActivitys.isEmpty()) {
                        return;
                    }
                    if (mActivitys.contains(activity)) {
                        /**
                         *  监听到 Activity销毁事件 将该Activity 从list中移除
                         */
                        popActivity(activity);
                    }
                }
            });
        }
    }
}