Quellcode durchsuchen

app在线升级功能

weizhengliang vor 3 Jahren
Ursprung
Commit
bbe56b3006

+ 20 - 4
lcd_board/src/main/java/com/wdkl/lcd_board/activity/AppUpdateActivity.kt

@@ -1,14 +1,17 @@
 package com.wdkl.lcd_board.activity
 
+import android.content.ComponentName
+import android.content.Intent
+import android.os.Build
 import android.text.TextUtils
 import android.util.Log
 import com.enation.javashop.android.jrouter.external.annotation.Router
 import com.enation.javashop.net.engine.model.NetState
-import com.wdkl.lcd_board.launch.MainLaunch
 import com.wdkl.lcd_board.R
 import com.wdkl.lcd_board.databinding.UpdateLayBinding
 import com.wdkl.lcd_board.helper.AppUpdateHelper
 import com.wdkl.lcd_board.helper.HttpHelper
+import com.wdkl.lcd_board.launch.MainLaunch
 import com.wdkl.ncs.android.lib.base.BaseActivity
 import com.wdkl.ncs.android.lib.utils.showMessage
 import com.wdkl.ncs.android.lib.vo.filter
@@ -18,6 +21,7 @@ import com.wdkl.ncs.android.middleware.logic.contract.conversion_box.AppUpdateCo
 import com.wdkl.ncs.android.middleware.logic.presenter.conversion_box.AppUpdatePresenter
 import kotlinx.android.synthetic.main.update_lay.*
 
+
 @Router(path = "/lcd_board/update")
 class AppUpdateActivity :BaseActivity<AppUpdatePresenter, UpdateLayBinding>(), AppUpdateContract.View {
     private val TAG = "AppUpdateActivity"
@@ -54,7 +58,7 @@ class AppUpdateActivity :BaseActivity<AppUpdatePresenter, UpdateLayBinding>(), A
                 runOnUiThread {
                     activity_calling_bed_text_download.text = "正在安装,请稍后..."
                 }
-                startInstallApk()
+                startInstallApp()
             }
 
             override fun onDownloading(progress: Int) {
@@ -84,14 +88,26 @@ class AppUpdateActivity :BaseActivity<AppUpdatePresenter, UpdateLayBinding>(), A
                     runOnUiThread {
                         showMessage("升级成功")
                         //finish()
-                        android.os.Process.killProcess(android.os.Process.myPid())
-                        System.exit(0)
+                        //android.os.Process.killProcess(android.os.Process.myPid())
+                        //System.exit(0)
                     }
                 }
             })
         }.start()
     }
 
+    fun startInstallApp() {
+        val path = AppUpdateHelper.FILE_APK_PATH + "/" + AppUpdateHelper.FILE_APK_NAME
+        val intent = Intent("rk.android.apkinstall")
+        intent.putExtra("instll_path", path)
+        intent.putExtra("commit_start", true)
+        if (Build.VERSION.SDK_INT >= 26) {
+            val componentName = ComponentName("com.android.packageinstaller", "com.android.packageinstaller.SilentInstallerReceiver")
+            intent.setComponent(componentName)
+        }
+        sendBroadcast(intent)
+    }
+
     override fun bindEvent() {
         //
     }