173 lines
6.3 KiB
Kotlin
173 lines
6.3 KiB
Kotlin
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
|
||
}
|
||
} |