GLDriver/app/src/main/java/com/dahe/gldriver/base/App.kt
2024-03-29 15:34:57 +08:00

173 lines
6.3 KiB
Kotlin
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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<TrustManager>(object : X509TrustManager {
override fun getAcceptedIssuers(): Array<X509Certificate?> {
return arrayOfNulls(0)
}
override fun checkClientTrusted(certs: Array<X509Certificate>, authType: String) {}
override fun checkServerTrusted(certs: Array<X509Certificate>, 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
}
}