|
@@ -3,10 +3,7 @@ package com.wdkl.app.ncs.callingdoor.activity
|
|
|
import android.app.AlarmManager
|
|
|
import android.content.*
|
|
|
import android.net.ConnectivityManager
|
|
|
-import android.os.Build
|
|
|
-import android.os.Bundle
|
|
|
-import android.os.Handler
|
|
|
-import android.os.Looper
|
|
|
+import android.os.*
|
|
|
import android.support.v4.app.Fragment
|
|
|
import android.text.TextUtils
|
|
|
import android.util.Log
|
|
@@ -69,9 +66,8 @@ import org.greenrobot.eventbus.EventBus
|
|
|
import org.greenrobot.eventbus.Subscribe
|
|
|
import org.greenrobot.eventbus.ThreadMode
|
|
|
import serialporttest.utils.SerialPortUtil
|
|
|
-import java.io.DataOutputStream
|
|
|
-import java.io.IOException
|
|
|
-import java.io.PrintWriter
|
|
|
+import java.io.*
|
|
|
+import java.lang.Process
|
|
|
import java.util.concurrent.TimeUnit
|
|
|
|
|
|
|
|
@@ -112,6 +108,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
|
|
|
private var serverSuccess = false
|
|
|
private var cancelRestart = false
|
|
|
+ private var copyDone = false
|
|
|
|
|
|
private val handler by lazy { Handler(Looper.getMainLooper()) }
|
|
|
|
|
@@ -203,6 +200,10 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
}
|
|
|
|
|
|
checkServer()
|
|
|
+
|
|
|
+ if ("rk3128".equals(Build.MODEL)) {
|
|
|
+ checkLaunch()
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private fun checkAppExist() : Boolean {
|
|
@@ -234,6 +235,70 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //检查launch版本
|
|
|
+ private fun checkLaunch() {
|
|
|
+ Log.d(TAG, "start check launch")
|
|
|
+ val pm = packageManager
|
|
|
+ val packageInfo = pm.getInstalledPackages(0)
|
|
|
+ var launchExist = false
|
|
|
+ for (pInfo in packageInfo) {
|
|
|
+ val launchName = "com.wdkl.launch"
|
|
|
+ val launchVersion = "1.3"
|
|
|
+ if (launchName == pInfo.packageName) {
|
|
|
+ launchExist = true
|
|
|
+ Log.d(TAG, "start check launch app: " + pInfo.versionName)
|
|
|
+ if (launchVersion != pInfo.versionName) {
|
|
|
+ Log.d(TAG, "need update launch, app name: " + pInfo.packageName + ", app version: " + pInfo.versionName)
|
|
|
+ updateLaunchApk()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Log.d(TAG, "launch app exist: $launchExist")
|
|
|
+ }
|
|
|
+
|
|
|
+ private fun updateLaunchApk() {
|
|
|
+ Thread {
|
|
|
+ val apkName = "launch.apk"
|
|
|
+ copyAssetsToDst(applicationContext, apkName, Environment.getExternalStorageDirectory().path + "/" + Environment.DIRECTORY_DOWNLOADS)
|
|
|
+ if (copyDone) {
|
|
|
+ val fileName = Environment.getExternalStorageDirectory().path + "/" + Environment.DIRECTORY_DOWNLOADS + "/" + apkName
|
|
|
+ //升级
|
|
|
+ AppUpdateHelper.rootSilenceInstall(fileName)
|
|
|
+ //5分钟后重启设备
|
|
|
+ AppTool.Time.delay(300000) {
|
|
|
+ AppUpdateHelper.reboot(BaseApplication.appContext)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }.start()
|
|
|
+ }
|
|
|
+
|
|
|
+ //拷贝assets下面的文件到sd卡
|
|
|
+ private fun copyAssetsToDst(context: Context, fileName: String, dstPath: String) {
|
|
|
+ try {
|
|
|
+ copyDone = false
|
|
|
+ val file = File(dstPath)
|
|
|
+ if (!file.exists()) {
|
|
|
+ file.mkdirs()
|
|
|
+ }
|
|
|
+ val outFile = File("$dstPath/$fileName")
|
|
|
+ val `is` = context.assets.open(fileName)
|
|
|
+ val fos = FileOutputStream(outFile)
|
|
|
+ val buffer = ByteArray(1024)
|
|
|
+ var byteCount: Int
|
|
|
+ while (`is`.read(buffer).also { byteCount = it } != -1) {
|
|
|
+ fos.write(buffer, 0, byteCount)
|
|
|
+ }
|
|
|
+ fos.flush()
|
|
|
+ `is`.close()
|
|
|
+ fos.close()
|
|
|
+ copyDone = true
|
|
|
+ } catch (e: java.lang.Exception) {
|
|
|
+ copyDone = false
|
|
|
+ e.printStackTrace()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
private fun checkServer() {
|
|
|
Thread {
|
|
|
while (!serverSuccess) {
|