|
@@ -7,9 +7,14 @@ import androidx.multidex.MultiDexApplication
|
7
|
7
|
import com.hjq.toast.Toaster
|
8
|
8
|
import com.xhly.corelib.utils.ModelNameUtils
|
9
|
9
|
import com.xhly.manageapp.service.websocket.AppSocket
|
|
10
|
+import com.xhly.manageapp.utils.ZJAPPUtils
|
|
11
|
+import java.io.File
|
10
|
12
|
|
11
|
13
|
class ManageApplication : MultiDexApplication() {
|
12
|
14
|
companion object {
|
|
15
|
+ @JvmStatic
|
|
16
|
+ var instance: ManageApplication?=null
|
|
17
|
+ private set
|
13
|
18
|
private var csdkManager: CSDKManager? = null
|
14
|
19
|
|
15
|
20
|
private var apppSocket: AppSocket? = null
|
|
@@ -39,10 +44,17 @@ class ManageApplication : MultiDexApplication() {
|
39
|
44
|
* 获取应用白名单
|
40
|
45
|
*/
|
41
|
46
|
fun getInstallPackageWhiteList(): ArrayList<String> {
|
42
|
|
- if (ModelNameUtils.IS_LianxX505f()) {
|
43
|
|
- return csdkManager?.installPackageWhiteList as ArrayList<String>
|
|
47
|
+ try {
|
|
48
|
+ if (ModelNameUtils.IS_LianxX505f()) {
|
|
49
|
+ return csdkManager?.installPackageWhiteList as ArrayList<String>
|
|
50
|
+ }
|
|
51
|
+ } catch (e: Exception) {
|
|
52
|
+
|
44
|
53
|
}
|
45
|
|
- return arrayListOf()
|
|
54
|
+ return arrayListOf(
|
|
55
|
+ "com.xhly.manageapp",
|
|
56
|
+ "com.xhkjedu.xh_control_appstore"
|
|
57
|
+ )
|
46
|
58
|
}
|
47
|
59
|
|
48
|
60
|
/**
|
|
@@ -50,8 +62,15 @@ class ManageApplication : MultiDexApplication() {
|
50
|
62
|
*/
|
51
|
63
|
|
52
|
64
|
fun installPackage(string: String) {
|
|
65
|
+ val installPackageWhiteList = getInstallPackageWhiteList()
|
|
66
|
+ installPackageWhiteList.add(string)
|
|
67
|
+ addInstallPackageWhiteList(installPackageWhiteList)
|
53
|
68
|
if (ModelNameUtils.IS_LianxX505f()) {
|
54
|
69
|
csdkManager?.installPackage(string)
|
|
70
|
+ } else {
|
|
71
|
+ instance?.let {
|
|
72
|
+ ZJAPPUtils.installApk(it, File(string))
|
|
73
|
+ }
|
55
|
74
|
}
|
56
|
75
|
}
|
57
|
76
|
|
|
@@ -79,7 +98,10 @@ class ManageApplication : MultiDexApplication() {
|
79
|
98
|
*/
|
80
|
99
|
fun setPackageEnabled(pkg: String, enableFlag: Boolean) {
|
81
|
100
|
if (ModelNameUtils.IS_LianxX505f()) {
|
82
|
|
- csdkManager?.setPackageEnabled(pkg, enableFlag)
|
|
101
|
+ //TODO 暂不处理系统应用
|
|
102
|
+ if (!pkg.startsWith("com.android.")){
|
|
103
|
+ csdkManager?.setPackageEnabled(pkg, enableFlag)
|
|
104
|
+ }
|
83
|
105
|
}
|
84
|
106
|
}
|
85
|
107
|
|
|
@@ -230,7 +252,7 @@ class ManageApplication : MultiDexApplication() {
|
230
|
252
|
val serial = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
231
|
253
|
Build.getSerial()
|
232
|
254
|
} else {
|
233
|
|
- Build.SERIAL
|
|
255
|
+ Build.SERIAL
|
234
|
256
|
}
|
235
|
257
|
return if (serial.isNullOrBlank()) {
|
236
|
258
|
""
|
|
@@ -303,11 +325,22 @@ class ManageApplication : MultiDexApplication() {
|
303
|
325
|
}
|
304
|
326
|
}
|
305
|
327
|
|
306
|
|
-
|
|
328
|
+ /**
|
|
329
|
+ * 获得当前栈内应用csdkManager?.lockTaskPackages
|
|
330
|
+ */
|
|
331
|
+ fun lockTaskPackages():Array<String>{
|
|
332
|
+ if (ModelNameUtils.IS_LianxX505f()) {
|
|
333
|
+ csdkManager?.let {
|
|
334
|
+ return it.lockTaskPackages
|
|
335
|
+ }
|
|
336
|
+ }
|
|
337
|
+ return arrayOf()
|
|
338
|
+ }
|
307
|
339
|
}
|
308
|
340
|
|
309
|
341
|
override fun onCreate() {
|
310
|
342
|
super.onCreate()
|
|
343
|
+ instance= this
|
311
|
344
|
Toaster.init(this)
|
312
|
345
|
apppSocket = AppSocket()
|
313
|
346
|
apppSocket?.startSocket(this)
|