package com.dahe.gldriver.base import android.app.Application import android.app.PendingIntent import android.app.PendingIntent.* import android.content.Context import android.content.Intent import android.util.Log import com.dahe.gldriver.BuildConfig import com.dahe.gldriver.R import com.dahe.gldriver.net.Api import com.dahe.gldriver.oss.OssServiceUtil import com.dahe.gldriver.push.PushHelper import com.dahe.gldriver.ui.HomeActivity import com.dahe.gldriver.utils.OrderUtils import com.dahe.mylibrary.CommonBaseLibrary import com.dahe.mylibrary.utils.AppUtils import com.esign.esignsdk.EsignSdk import com.github.gzuliyujiang.dialog.DialogConfig import com.github.gzuliyujiang.dialog.DialogStyle import com.gyf.cactus.Cactus import com.gyf.cactus.callback.CactusBackgroundCallback import com.tencent.bugly.crashreport.CrashReport import com.umeng.commonsdk.UMConfigure import com.umeng.message.PushAgent import com.umeng.message.api.UPushRegisterCallback import com.umeng.umverify.UMVerifyHelper import com.umeng.umverify.listener.UMTokenResultListener import java.security.SecureRandom import java.security.cert.X509Certificate import javax.net.ssl.HttpsURLConnection import javax.net.ssl.SSLContext import javax.net.ssl.TrustManager import javax.net.ssl.X509TrustManager class App : Application() { override fun onCreate() { super.onCreate() app = this CommonBaseLibrary.getInstance().init(this, Api.BASE_URL) //选择器样式切换 DialogConfig.setDialogStyle(DialogStyle.One) if (BuildConfig.DEBUG) { // CrashHandler.getInstance().init(this); // CrashHandler2.getInstance().init(getApplicationContext()); } CrashReport.initCrashReport(getApplicationContext(), AppConfig.BUGLY_APP_ID, false); // SophixManager.getInstance().queryAndLoadNewPatch(); OssServiceUtil.getInstance().init(); //E签宝 EsignSdk.getInstance().init(AppConfig.E_KEY, AppConfig.E_LICENSE) initUmeng() var pendingIntent: PendingIntent = getActivity( applicationContext, 0, Intent(applicationContext, HomeActivity::class.java), FLAG_UPDATE_CURRENT ) Cactus.instance .isDebug(true) .setChannelId(AppUtils.getAppPackageName()) .setChannelName(AppUtils.getAppPackageName()) //可选,设置通知栏点击事件 .setPendingIntent(pendingIntent) .setBackgroundMusicEnabled(true)//可选,退到后台是否可以播放音乐 // .setMusicInterval(20000)//设置音乐间隔时间,时间间隔越长,越省电,默认间隔时间是0 .setMusicId(R.raw.main) //可选,设置音乐 // .addCallback(new CactusCallback())//可选,运行时回调 // .setCrashRestartUIEnabled(true) //可选,设置奔溃可以重启,google原生rom android 10以下可以正常重启 .setTitle("大河好运") .setContent("大河好运司机端为您提供服务") .hideNotificationAfterO(true) .setSmallIcon(R.mipmap.app_icon) .addCallback { OrderUtils.getInstance().upLocation(applicationContext) println("22222222222") Log.i("lijia","11111111") } .addBackgroundCallback(object : CactusBackgroundCallback { override fun onBackground(background: Boolean) { if (background) { // getBillLocation(); } } }) .register(this) } override fun attachBaseContext(base: Context) { super.attachBaseContext(base) } //忽略https的证书校验 fun handleSSLHandshake() { try { val trustAllCerts = arrayOf(object : X509TrustManager { override fun getAcceptedIssuers(): Array { return arrayOfNulls(0) } override fun checkClientTrusted(certs: Array, authType: String) {} override fun checkServerTrusted(certs: Array, authType: String) {} }) val sc = SSLContext.getInstance("TLS") // trustAllCerts信任所有的证书 sc.init(null, trustAllCerts, SecureRandom()) HttpsURLConnection.setDefaultSSLSocketFactory(sc.socketFactory) HttpsURLConnection.setDefaultHostnameVerifier { hostname, session -> true } } catch (ignored: Exception) { } } private fun initUmeng() { // thread { //友盟 UMConfigure.preInit(this, AppConfig.APP_KEY, "Umeng"); // 推送注册 val api = PushAgent.getInstance(this) PushHelper.setting(api) api.register(object : UPushRegisterCallback { override fun onSuccess(p0: String?) {//注册厂商通道 Log.e( "TAG", "register failed! code:$p0" ) //注册厂商通道 // registerDevicePush(context) } override fun onFailure(p0: String?, p1: String?) { Log.e( "TAG", "register failed! code:$p0,desc:$p1" ) } }) UMConfigure.init( this, AppConfig.APP_KEY, "Umeng", UMConfigure.DEVICE_TYPE_PHONE, AppConfig.MESSAGE_SECRET ) //实名认证 val authHelper = UMVerifyHelper.getInstance(this, object : UMTokenResultListener { override fun onTokenSuccess(ret: String) { Log.e("Umenginit", "onTokenSuccess: $ret") } override fun onTokenFailed(ret: String) { Log.e("Umenginit", "onTokenFailed: $ret") } }) authHelper.setLoggerEnable(true) authHelper.setAuthSDKInfo("iiBVGHSKbUML/NTbj187eM1N1KMvRzh1sJbM+2FMbV7FNOnmngDlPr2reqlvouhK/8dXcaNGJuI9B+Kv7C6IlBMoGE0PMVWvwY754T8zxSgSfLUM6s7e0dVxmtMFRrCDawKBiv6g/5+X1mSK5OXNG+H//8rtDDf0vePyUUPCAU26tIX/7BCJ4wvUjobAHBDtSbMMhzqWR5MC7jTCnR0k1OwwvEYxIH6jZuRqT4QgBBO4AMKvFjboqj3rsrr5uE6Gn28fWQrBBrOkPS830GnZFU8ND/0LedGgTlMllBAXLy0gbZZ/8LKJOQ==") // }.start() } companion object { var app: App? = null } }