|
@@ -2,17 +2,12 @@ package com.wdkl.ncs.android.component.nursehome.activity
|
|
|
|
|
|
import android.Manifest
|
|
import android.Manifest
|
|
import android.app.NotificationManager
|
|
import android.app.NotificationManager
|
|
-import android.content.BroadcastReceiver
|
|
|
|
-import android.content.Context
|
|
|
|
-import android.content.Intent
|
|
|
|
-import android.content.IntentFilter
|
|
|
|
|
|
+import android.content.*
|
|
|
|
+import android.content.pm.PackageManager
|
|
import android.graphics.Color
|
|
import android.graphics.Color
|
|
import android.net.ConnectivityManager
|
|
import android.net.ConnectivityManager
|
|
import android.net.Uri
|
|
import android.net.Uri
|
|
-import android.os.Build
|
|
|
|
-import android.os.Bundle
|
|
|
|
-import android.os.CountDownTimer
|
|
|
|
-import android.os.Handler
|
|
|
|
|
|
+import android.os.*
|
|
import android.provider.Settings
|
|
import android.provider.Settings
|
|
import android.support.v4.app.Fragment
|
|
import android.support.v4.app.Fragment
|
|
import android.support.v4.app.FragmentManager
|
|
import android.support.v4.app.FragmentManager
|
|
@@ -53,13 +48,13 @@ import com.wdkl.ncs.android.middleware.model.dos.AppVersionDO
|
|
import com.wdkl.ncs.android.middleware.model.dos.DeviceDO
|
|
import com.wdkl.ncs.android.middleware.model.dos.DeviceDO
|
|
import com.wdkl.ncs.android.middleware.model.dos.PartSettingDO
|
|
import com.wdkl.ncs.android.middleware.model.dos.PartSettingDO
|
|
import com.wdkl.ncs.android.middleware.model.dto.TcpSeverDTO
|
|
import com.wdkl.ncs.android.middleware.model.dto.TcpSeverDTO
|
|
-import com.wdkl.ncs.android.middleware.model.vo.CallingHistoryVO
|
|
|
|
-import com.wdkl.ncs.android.middleware.model.vo.FrameBedVO
|
|
|
|
import com.wdkl.ncs.android.middleware.model.vo.InteractionVO
|
|
import com.wdkl.ncs.android.middleware.model.vo.InteractionVO
|
|
import com.wdkl.ncs.android.middleware.model.vo.NurseDeviceInfoVO
|
|
import com.wdkl.ncs.android.middleware.model.vo.NurseDeviceInfoVO
|
|
import com.wdkl.ncs.android.middleware.tcp.TcpClient
|
|
import com.wdkl.ncs.android.middleware.tcp.TcpClient
|
|
-import com.wdkl.ncs.android.middleware.tcp.TcpClientHandler
|
|
|
|
-import com.wdkl.ncs.android.middleware.tcp.channel.*
|
|
|
|
|
|
+import com.wdkl.ncs.android.middleware.tcp.channel.DeviceChannel
|
|
|
|
+import com.wdkl.ncs.android.middleware.tcp.channel.EntraceGuardUtil
|
|
|
|
+import com.wdkl.ncs.android.middleware.tcp.channel.VideoUtil
|
|
|
|
+import com.wdkl.ncs.android.middleware.tcp.channel.VoiceUtil
|
|
import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel
|
|
import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel
|
|
import com.wdkl.ncs.android.middleware.tcp.enums.DeviceTypeEnum
|
|
import com.wdkl.ncs.android.middleware.tcp.enums.DeviceTypeEnum
|
|
import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction
|
|
import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction
|
|
@@ -72,7 +67,9 @@ import kotlinx.android.synthetic.main.activity_nurse_home.*
|
|
import org.greenrobot.eventbus.EventBus
|
|
import org.greenrobot.eventbus.EventBus
|
|
import org.greenrobot.eventbus.Subscribe
|
|
import org.greenrobot.eventbus.Subscribe
|
|
import org.greenrobot.eventbus.ThreadMode
|
|
import org.greenrobot.eventbus.ThreadMode
|
|
-import java.lang.StringBuilder
|
|
|
|
|
|
+import java.io.File
|
|
|
|
+import java.io.FileOutputStream
|
|
|
|
+import java.io.InputStream
|
|
import java.util.*
|
|
import java.util.*
|
|
import java.util.concurrent.Executors
|
|
import java.util.concurrent.Executors
|
|
import java.util.concurrent.ScheduledExecutorService
|
|
import java.util.concurrent.ScheduledExecutorService
|
|
@@ -162,14 +159,8 @@ class NurseHomeActivity : BaseActivity<NurseHomeActivityPresenter, ActivityNurs
|
|
|
|
|
|
if ("YUNPAI_H6".equals(Build.MODEL) || "YUNPAI_H6B".equals(Build.MODEL)) {
|
|
if ("YUNPAI_H6".equals(Build.MODEL) || "YUNPAI_H6B".equals(Build.MODEL)) {
|
|
Constants.device_serial_id = Constants.imei
|
|
Constants.device_serial_id = Constants.imei
|
|
-
|
|
|
|
- val intent = Intent()
|
|
|
|
- intent.setClassName("com.wd.app", "com.wd.app.MyService")
|
|
|
|
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
|
|
|
- //android8.0以上通过startForegroundService启动service
|
|
|
|
- startForegroundService(intent)
|
|
|
|
- } else {
|
|
|
|
- startService(intent)
|
|
|
|
|
|
+ if ("YUNPAI_H6".equals(Build.MODEL)) {
|
|
|
|
+ startYunpaiPlugin()
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
Constants.device_serial_id = Constants.mac
|
|
Constants.device_serial_id = Constants.mac
|
|
@@ -223,6 +214,79 @@ class NurseHomeActivity : BaseActivity<NurseHomeActivityPresenter, ActivityNurs
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private fun startYunpaiPlugin() {
|
|
|
|
+ try {
|
|
|
|
+ val packageInfos = packageManager.getInstalledPackages(
|
|
|
|
+ PackageManager.GET_ACTIVITIES or
|
|
|
|
+ PackageManager.GET_SERVICES
|
|
|
|
+ )
|
|
|
|
+ var needInstall = false
|
|
|
|
+ for (info in packageInfos) {
|
|
|
|
+ val pkg = info.packageName
|
|
|
|
+ if (pkg.equals("com.wd.app")) {
|
|
|
|
+ //启动云派app升级监听服务
|
|
|
|
+ val intent = Intent()
|
|
|
|
+ intent.setClassName("com.wd.app", "com.wd.app.MyService")
|
|
|
|
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
|
|
|
+ //android8.0以上通过startForegroundService启动service
|
|
|
|
+ startForegroundService(intent)
|
|
|
|
+ } else {
|
|
|
|
+ startService(intent)
|
|
|
|
+ }
|
|
|
|
+ needInstall = false
|
|
|
|
+ break
|
|
|
|
+ } else {
|
|
|
|
+ needInstall = true
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (needInstall) {
|
|
|
|
+ //拷贝并安装云派app升级服务apk
|
|
|
|
+ Log.d(TAG,"准备安装升级服务apk")
|
|
|
|
+ Thread{
|
|
|
|
+ try {
|
|
|
|
+ val fileName = "yunpai_launch_app.apk"
|
|
|
|
+ val dstPath = Environment.getExternalStorageDirectory().path + "/Download"
|
|
|
|
+ val file = File(dstPath)
|
|
|
|
+ if (!file.exists()) {
|
|
|
|
+ file.mkdirs()
|
|
|
|
+ }
|
|
|
|
+ val outFile = File(dstPath + "/" + fileName)
|
|
|
|
+ if (outFile.exists()) {
|
|
|
|
+ outFile.delete()
|
|
|
|
+ }
|
|
|
|
+ val inputStream: InputStream = getAssets().open(fileName)
|
|
|
|
+ val fos = FileOutputStream(outFile)
|
|
|
|
+ val buffer = ByteArray(1024)
|
|
|
|
+ var byteCount = 0
|
|
|
|
+ while (inputStream.read(buffer).also { byteCount = it } != -1) {
|
|
|
|
+ fos.write(buffer, 0, byteCount)
|
|
|
|
+ }
|
|
|
|
+ fos.flush()
|
|
|
|
+ inputStream.close()
|
|
|
|
+ fos.close()
|
|
|
|
+
|
|
|
|
+ //apk拷贝完成,即将安装
|
|
|
|
+ val action = "com.miki.slient.INSTALL_CUSTOMER_PACKAGES"
|
|
|
|
+ val intent = Intent(action)
|
|
|
|
+ intent.putExtra("apkPath", dstPath + "/" + fileName)
|
|
|
|
+ intent.putExtra("packageName", "com.miki.sensortest")
|
|
|
|
+ sendBroadcast(intent)
|
|
|
|
+
|
|
|
|
+ runOnUiThread {
|
|
|
|
+ showMessage("app升级服务正在安装,请稍后重启设备以完成升级服务启动")
|
|
|
|
+ }
|
|
|
|
+ } catch (e: java.lang.Exception) {
|
|
|
|
+ e.printStackTrace()
|
|
|
|
+ }
|
|
|
|
+ }.start()
|
|
|
|
+ }
|
|
|
|
+ } catch (t: Throwable) {
|
|
|
|
+ t.printStackTrace()
|
|
|
|
+ showMessage("启动升级插件服务失败: " + t.message)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
private fun reload() {
|
|
private fun reload() {
|
|
handler.postDelayed({
|
|
handler.postDelayed({
|
|
if (permissionGrant) {
|
|
if (permissionGrant) {
|