소스 검색

增加自动卸载二代系统app功能,默认关闭

weizhengliang 2 년 전
부모
커밋
679a02d5cc
1개의 변경된 파일46개의 추가작업 그리고 1개의 파일을 삭제
  1. 46 1
      app/src/main/code/com/wdkl/app/ncs/application/Application.kt

+ 46 - 1
app/src/main/code/com/wdkl/app/ncs/application/Application.kt

@@ -3,6 +3,8 @@ package com.wdkl.app.ncs.application
 import android.content.Context
 import android.content.res.Configuration
 import android.hardware.Camera
+import android.os.Build
+import android.util.Log
 import com.enation.javashop.android.jrouter.JRouter
 import com.enation.javashop.net.engine.config.NetEngineConfig
 import com.enation.javashop.net.engine.plugin.exception.RestfulExceptionInterceptor
@@ -16,6 +18,7 @@ import com.wdkl.ncs.android.component.nursehome.util.XCrashUtils
 import com.wdkl.ncs.android.lib.base.BaseApplication
 import com.wdkl.ncs.android.middleware.common.Constants
 import serialporttest.utils.SerialPortUtil
+import java.io.PrintWriter
 
 /**
  * @author LDD
@@ -24,7 +27,9 @@ import serialporttest.utils.SerialPortUtil
  * @Note   应用Application
  */
 class Application : BaseApplication() {
-
+    private val TAG = "wdkl_app"
+    private val uninstallApk = false
+    private val APP_NAME = "com.wdkl.callingmainnurse"
 
     /**
      * @author LDD
@@ -92,6 +97,46 @@ class Application : BaseApplication() {
         XCrashUtils().init(this)
 
         Constants.supportCamera = isCameraSupport()
+
+        if (Build.MODEL.equals("rk3128")) {
+            //卸载原来二代系统apk
+            if (uninstallApk) {
+                //卸载老的二代app
+                Thread {
+                    if (checkAppExist()) {
+                        uninstallApp()
+                    }
+                }.start()
+            }
+        }
+    }
+
+    private fun checkAppExist() : Boolean {
+        val packageInfo = packageManager.getInstalledPackages(0)
+        var appExist = false
+        for (pInfo in packageInfo) {
+            if (APP_NAME == pInfo.packageName) {
+                appExist = true
+                break
+            }
+        }
+        Log.e(TAG, "app exist: " + appExist)
+        return appExist
+    }
+
+    private fun uninstallApp() {
+        val process: Process
+        val printWriter: PrintWriter
+        try {
+            process = Runtime.getRuntime().exec("su")
+            printWriter = PrintWriter(process.outputStream)
+            printWriter.println("pm uninstall " + APP_NAME)
+            printWriter.flush()
+            printWriter.close()
+            Log.e(TAG, "uninstall end")
+        } catch (e: java.lang.Exception) {
+            Log.e(TAG, "uninstall e:" + e.message)
+        }
     }
 
     override fun attachBaseContext(base: Context?) {