package com.xianning.driver.ui.pub
|
|
import android.annotation.SuppressLint
|
import android.content.Context
|
import android.content.pm.PackageInfo
|
import android.content.pm.PackageManager
|
import android.content.pm.Signature
|
import android.os.Bundle
|
import android.os.Handler
|
import android.os.Looper
|
import android.util.Log
|
import androidx.core.app.ActivityCompat
|
import com.xianning.driver.R
|
import com.xianning.driver.base.Const
|
import com.xianning.driver.base.MyBaseActivity
|
import com.xianning.driver.netUtls.getToken
|
import com.xianning.driver.ui.main.MainActivity
|
import org.jetbrains.anko.startActivity
|
import java.io.ByteArrayInputStream
|
import java.security.cert.CertificateException
|
import java.security.cert.CertificateFactory
|
import java.security.cert.X509Certificate
|
import java.util.regex.Matcher
|
import java.util.regex.Pattern
|
|
class StartActivity : MyBaseActivity() {
|
override fun setContentView() {
|
setContentView(R.layout.activity_start)
|
}
|
|
override fun initView() {
|
showHeader(false)
|
showTitle(false)
|
// val publicKey = getSignInfo(this)
|
// Log.e("mmp", "公钥:$publicKey")
|
}
|
|
@SuppressLint("SourceLockedOrientationActivity")
|
override fun onCreate(savedInstanceState: Bundle?) {
|
super.onCreate(savedInstanceState)
|
Handler(Looper.getMainLooper()).postDelayed({
|
callLast()
|
},2000)
|
}
|
|
protected fun getSignInfo(mContext: Context): String{
|
var signcode = ""
|
try {
|
val packageInfo: PackageInfo = mContext.packageManager.getPackageInfo(
|
"com.xianning.driver", PackageManager.GET_SIGNATURES
|
)
|
val signs: Array<Signature> = packageInfo.signatures
|
val sign: Signature = signs[0]
|
signcode = parseSignature(sign.toByteArray())
|
signcode = signcode.toLowerCase()
|
} catch (e: Exception) {
|
}
|
return signcode
|
}
|
|
protected fun parseSignature(signature: ByteArray): String {
|
var sign = ""
|
try {
|
val certFactory = CertificateFactory
|
.getInstance("X.509")
|
val cert = certFactory
|
.generateCertificate(ByteArrayInputStream(signature)) as X509Certificate
|
val pubKey = cert.publicKey.toString()
|
var ss = subString(pubKey)
|
ss = ss!!.replace(",", "")
|
ss = ss.toLowerCase()
|
val aa = ss.indexOf("modulus")
|
val bb = ss.indexOf("publicexponent")
|
sign = ss.substring(aa + 8, bb)
|
} catch (e: CertificateException) {
|
|
}
|
return sign
|
}
|
|
fun subString(sub: String?): String? {
|
val pp: Pattern = Pattern.compile("\\s*|\t|\r|\n")
|
val mm: Matcher = pp.matcher(sub)
|
return mm.replaceAll("")
|
}
|
|
private fun callLast() {
|
if (getToken().isNullOrEmpty()){
|
startActivity<LoginActivity>()
|
}else{
|
startActivity<MainActivity>()
|
}
|
}
|
|
// @SuppressLint("CheckResult")
|
// private fun setRxpermiss() {
|
// ActivityCompat.requestPermissions(this, Const.PERMISSIONS_LIST, 101);
|
// }
|
//
|
// override fun onRequestPermissionsResult(
|
// requestCode: Int,
|
// permissions: Array<out String>,
|
// grantResults: IntArray
|
// ) {
|
// super.onRequestPermissionsResult(requestCode, permissions, grantResults)
|
// if (requestCode == 101) {
|
// var b = grantResults.size == Const.PERMISSIONS_LIST.size
|
// if (b) {
|
// callLast()
|
// } else {
|
// callLast()
|
// }
|
// }
|
// }
|
|
override fun setOnclick() {
|
}
|
|
|
}
|