package com.tejia.lijin.app;
|
|
import android.app.ActivityManager;
|
import android.app.Application;
|
import android.content.Context;
|
import android.content.Intent;
|
import android.os.Build;
|
import android.os.Process;
|
|
import androidx.multidex.MultiDex;
|
|
import android.util.Log;
|
|
import com.alibaba.baichuan.android.trade.AlibcTradeSDK;
|
import com.alibaba.baichuan.android.trade.callback.AlibcTradeInitCallback;
|
import com.alibaba.baichuan.trade.biz.core.taoke.AlibcTaokeParams;
|
import com.bytedance.sdk.openadsdk.TTAdConfig;
|
import com.bytedance.sdk.openadsdk.TTAdConstant;
|
import com.bytedance.sdk.openadsdk.TTAdSdk;
|
import com.kepler.jd.Listener.AsyncInitListener;
|
import com.kepler.jd.login.KeplerApiManager;
|
import com.qq.e.comm.managers.GDTADManager;
|
import com.tejia.lijin.app.util.Constant;
|
import com.tencent.mm.opensdk.openapi.IWXAPI;
|
import com.umeng.analytics.MobclickAgent;
|
import com.umeng.commonsdk.UMConfigure;
|
import com.wpc.library.util.NetUtils;
|
import com.tejia.lijin.app.service.NetworkStateService;
|
import com.tejia.lijin.app.util.CrashHandler;
|
import com.tejia.lijin.app.util.PushUtil;
|
import com.tejia.lijin.app.util.TestUtil;
|
import com.tejia.lijin.app.util.ToolUtil;
|
|
import java.lang.reflect.Field;
|
import java.lang.reflect.Method;
|
import java.util.HashMap;
|
import java.util.List;
|
|
|
/**
|
* Created by weikou2015 on 2017/2/20.
|
*/
|
|
public class ShoppingApplication extends Application {
|
|
public static ShoppingApplication application = null;
|
public static boolean isJDInit = false;
|
|
// public Tencent mTencent;
|
|
@Override
|
public void onCreate() {
|
super.onCreate();
|
disableAPIDialog();
|
//测试注入用户信息
|
TestUtil.pourIntoUserInfo(getApplicationContext());
|
initAD();
|
//进程名字
|
String processName = ToolUtil.getProcessName(this, android.os.Process.myPid());
|
if (processName != null) {//防止重复创建
|
boolean defaultProcess = processName.equals(getPackageName());//主进程名字
|
if (!defaultProcess) {//不是主进程 阻止往下执行
|
return;
|
}
|
}
|
|
MultiDex.install(this);
|
if (BuXinConstant.DEBUG) {//异常信息收集
|
CrashHandler.getInstance().init(getApplicationContext());
|
}
|
|
UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE, null);
|
|
application = this;
|
|
if (!AlibcTradeSDK.initState.isInitialized() && !AlibcTradeSDK.initState.isInitializing())
|
AlibcTradeSDK.asyncInit(this, new AlibcTradeInitCallback() {
|
@Override
|
public void onSuccess() {
|
// AlibcTradeSDK.setTaokeParams(new AlibcTaokeParams(BuXinConstant.BAICHUAN_PID, "", null));
|
AlibcTaokeParams alibcTaokeParams = new AlibcTaokeParams("", "", "");
|
AlibcTradeSDK.setTaokeParams(alibcTaokeParams);
|
alibcTaokeParams.setPid(BuXinConstant.BAICHUAN_PID);
|
alibcTaokeParams.setAdzoneid(BuXinConstant.BAICHUAN_ADZONE_ID);
|
alibcTaokeParams.pid = BuXinConstant.BAICHUAN_PID;
|
alibcTaokeParams.adzoneid = BuXinConstant.BAICHUAN_ADZONE_ID;
|
alibcTaokeParams.extraParams = new HashMap<>();
|
alibcTaokeParams.extraParams.put("taokeAppkey", BuXinConstant.TAO_BAO_KE_KEY);
|
Log.e("mResult", "初始化成功");
|
}
|
|
@Override
|
public void onFailure(int i, String s) {
|
MobclickAgent.reportError(application, "ShoppingApplication---code:" + i + "---msg:" + s);
|
Log.e("mResult", "初始化失败---" + i + "---" + s);
|
}
|
});
|
|
PushUtil.inintPush(this);
|
ToolUtil.thirdPartySDK();//初始化第三方SDK
|
if (NetUtils.isNetConnected(getApplicationContext())) {
|
initJd(this);
|
} else {
|
try {
|
startService(new Intent(getApplicationContext(), NetworkStateService.class));
|
} catch (Exception e) {
|
|
}
|
}
|
|
}
|
|
/**
|
* 反射 禁止弹窗
|
*/
|
private void disableAPIDialog() {
|
if (Build.VERSION.SDK_INT < 28) return;
|
try {
|
Class clazz = Class.forName("android.app.ActivityThread");
|
Method currentActivityThread = clazz.getDeclaredMethod("currentActivityThread");
|
currentActivityThread.setAccessible(true);
|
Object activityThread = currentActivityThread.invoke(null);
|
Field mHiddenApiWarningShown = clazz.getDeclaredField("mHiddenApiWarningShown");
|
mHiddenApiWarningShown.setAccessible(true);
|
mHiddenApiWarningShown.setBoolean(activityThread, true);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
/**
|
* 京东联盟
|
*
|
* @param application
|
*/
|
public static void initJd(Application application) {
|
//京东联盟
|
final String appKey = Constant.JD_APP_KEY;
|
final String appSecret = Constant.JD_APP_SECRET;
|
KeplerApiManager.asyncInitSdk(application, appKey, appSecret, new AsyncInitListener() {
|
@Override
|
public void onSuccess() {
|
}
|
|
@Override
|
public void onFailure() {
|
}
|
|
});
|
isJDInit = true;
|
}
|
|
private boolean shouldInit() {
|
ActivityManager am = ((ActivityManager) getSystemService(Context.ACTIVITY_SERVICE));
|
List<ActivityManager.RunningAppProcessInfo> processInfos = am.getRunningAppProcesses();
|
String mainProcessName = getPackageName();
|
int myPid = Process.myPid();
|
for (ActivityManager.RunningAppProcessInfo info : processInfos) {
|
if (info.pid == myPid && mainProcessName.equals(info.processName)) {
|
return true;
|
}
|
}
|
return false;
|
}
|
|
/**
|
* 穿山甲广告初始化
|
*/
|
private void initAD() {
|
GDTADManager.getInstance().initWith(this, Constant.GDT_APP_ID);
|
|
TTAdSdk.init(getApplicationContext(),
|
new TTAdConfig.Builder()
|
.appId(Constant.CSJ_APP_ID)
|
.useTextureView(true) //默认使用SurfaceView播放视频广告,当有SurfaceView冲突的场景,可以使用TextureView
|
.appName("特价")
|
.titleBarTheme(TTAdConstant.TITLE_BAR_THEME_DARK)//落地页主题
|
.allowShowNotify(true) //是否允许sdk展示通知栏提示
|
.debug(true) //测试阶段打开,可以通过日志排查问题,上线时去除该调用
|
.directDownloadNetworkType(TTAdConstant.NETWORK_STATE_WIFI) //允许直接下载的网络状态集合,没有设置的网络下点击下载apk会有二次确认弹窗,弹窗中会披露应用信息
|
.supportMultiProcess(false) //是否支持多进程,true支持
|
.asyncInit(true) //是否异步初始化sdk,设置为true可以减少SDK初始化耗时。3450版本开始废弃~~
|
//.httpStack(new MyOkStack3())//自定义网络库,demo中给出了okhttp3版本的样例,其余请自行开发或者咨询工作人员。
|
.build());
|
}
|
|
public IWXAPI mWxApi;
|
|
}
|