|
@@ -428,104 +428,7 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
428
|
428
|
}
|
429
|
429
|
viewModel.viewModelScope.launch {
|
430
|
430
|
viewModel.forceListAppData.collect { modelList ->
|
431
|
|
- modelList?.let {
|
432
|
|
- //如果已经进入商店则不显示
|
433
|
|
- if (!Const.startAppStoreFlag) {
|
434
|
|
- DownLoadUtils.destroyDownLoad()
|
435
|
|
- InstallUtils.destroyInstallUtils()
|
436
|
|
- //获得必装应用,未安装或者版本较低则更新,先删除目录中的文件
|
437
|
|
- val rxPermissions = RxPermissions(this@MainActivity)
|
438
|
|
- rxPermissions.request(Manifest.permission.REQUEST_INSTALL_PACKAGES)
|
439
|
|
- .subscribe { granted ->
|
440
|
|
- if (granted || ModelNameUtils.IS_LianxX505f() || ModelNameUtils.IS_LianxX6e6f() || ModelNameUtils.IS_LianxTB223FC()) {
|
441
|
|
- // 权限已授予,执行安装操作
|
442
|
|
- val appList = AppUtils.GetAppList(this@MainActivity)
|
443
|
|
- //修改路径
|
444
|
|
- /* getExternalFilesDir(null)?.let {
|
445
|
|
- FileUtils.deleteCurrentFlie(it)
|
446
|
|
- }
|
447
|
|
- val file = getExternalFilesDir(null)*/
|
448
|
|
- var file: File? = null
|
449
|
|
- if (ModelNameUtils.IS_LianxTB223FC()) {
|
450
|
|
- var directory =
|
451
|
|
- Environment.getExternalStoragePublicDirectory(
|
452
|
|
- Environment.DIRECTORY_DOWNLOADS
|
453
|
|
- )
|
454
|
|
- file = File(directory, "appdownload")
|
455
|
|
- if (!file.exists()) {
|
456
|
|
- file.mkdirs()
|
457
|
|
- } else {
|
458
|
|
- FileUtils.deleteCurrentFlie(file)
|
459
|
|
- }
|
460
|
|
- } else {
|
461
|
|
- getExternalFilesDir(null)?.let {
|
462
|
|
- FileUtils.deleteCurrentFlie(it)
|
463
|
|
- }
|
464
|
|
- file = getExternalFilesDir(null)
|
465
|
|
- }
|
466
|
|
- modelList.forEach { app ->
|
467
|
|
- try {
|
468
|
|
- //获得已安装的应用判断版本,未安装的则直接静默安装。
|
469
|
|
- val filter =
|
470
|
|
- appList.filter { it.packageName.equals(app.appPackage) }
|
471
|
|
- //列表中不存在,或者版本较低则更新
|
472
|
|
- val apkPath = app.apkPath
|
473
|
|
- val appName = app.appName
|
474
|
|
- if (filter.isNotEmpty() || app.appPackage.equals(
|
475
|
|
- packageName
|
476
|
|
- )
|
477
|
|
- ) {
|
478
|
|
- //不为空filter.isNotEmpty()表示列表存在应用则判断版本号,app.appPackage.equals(packageName)表示需要判断是否更新桌面应用,都不满足表示应用不存在
|
479
|
|
- val appversion =
|
480
|
|
- if (app.appPackage.equals(packageName)) {
|
481
|
|
- SystemUtil.getAppVersionCode(
|
482
|
|
- this@MainActivity,
|
483
|
|
- packageName
|
484
|
|
- )
|
485
|
|
- } else {
|
486
|
|
- filter[0].versionNum
|
487
|
|
- }
|
488
|
|
- if (app.versionNum > appversion) {
|
489
|
|
- //版本低则更新安装。
|
490
|
|
- //AppDownLoadUtils.addToDownloadQueue(apkPath, appName,app.appPackage)
|
491
|
|
- DownLoadUtils.addDownload(
|
492
|
|
- apkPath,
|
493
|
|
- app.appPackage,
|
494
|
|
- File(
|
495
|
|
- file.toString(),
|
496
|
|
- "$appName.apk"
|
497
|
|
- ).toString(),
|
498
|
|
- app.appPackage,
|
499
|
|
- appName,
|
500
|
|
- app.versionNum.toLong()
|
501
|
|
- )
|
502
|
|
- }
|
503
|
|
- } else {
|
504
|
|
- //不存在,直接下载安装。
|
505
|
|
- //AppDownLoadUtils.addToDownloadQueue(apkPath, appName,app.appPackage)
|
506
|
|
- DownLoadUtils.addDownload(
|
507
|
|
- apkPath,
|
508
|
|
- app.appPackage,
|
509
|
|
- File(
|
510
|
|
- file.toString(),
|
511
|
|
- "$appName.apk"
|
512
|
|
- ).toString(),
|
513
|
|
- app.appPackage,
|
514
|
|
- appName,
|
515
|
|
- app.versionNum.toLong()
|
516
|
|
- )
|
517
|
|
- }
|
518
|
|
- } catch (e: Exception) {
|
519
|
|
- LogShow("问题" + e.toString())
|
520
|
|
- }
|
521
|
|
- }
|
522
|
|
- } else {
|
523
|
|
- // 用户拒绝了安装权限,处理相应逻辑
|
524
|
|
- viewModel.getAppList()
|
525
|
|
- }
|
526
|
|
- }
|
527
|
|
- }
|
528
|
|
- }
|
|
431
|
+ installAppList(modelList)
|
529
|
432
|
}
|
530
|
433
|
|
531
|
434
|
}
|
|
@@ -827,6 +730,108 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
827
|
730
|
}
|
828
|
731
|
}
|
829
|
732
|
|
|
733
|
+ private fun installAppList(modelList:ArrayList<AppModel>?) {
|
|
734
|
+ modelList?.let {
|
|
735
|
+ //如果已经进入商店则不显示
|
|
736
|
+ if (!Const.startAppStoreFlag) {
|
|
737
|
+ DownLoadUtils.destroyDownLoad()
|
|
738
|
+ InstallUtils.destroyInstallUtils()
|
|
739
|
+ //获得必装应用,未安装或者版本较低则更新,先删除目录中的文件
|
|
740
|
+ val rxPermissions = RxPermissions(this@MainActivity)
|
|
741
|
+ rxPermissions.request(Manifest.permission.REQUEST_INSTALL_PACKAGES)
|
|
742
|
+ .subscribe { granted ->
|
|
743
|
+ if (granted || ModelNameUtils.IS_LianxX505f() || ModelNameUtils.IS_LianxX6e6f() || ModelNameUtils.IS_LianxTB223FC()) {
|
|
744
|
+ // 权限已授予,执行安装操作
|
|
745
|
+ val appList = AppUtils.GetAppList(this@MainActivity)
|
|
746
|
+ //修改路径
|
|
747
|
+ /* getExternalFilesDir(null)?.let {
|
|
748
|
+ FileUtils.deleteCurrentFlie(it)
|
|
749
|
+ }
|
|
750
|
+ val file = getExternalFilesDir(null)*/
|
|
751
|
+ var file: File? = null
|
|
752
|
+ if (ModelNameUtils.IS_LianxTB223FC()) {
|
|
753
|
+ var directory =
|
|
754
|
+ Environment.getExternalStoragePublicDirectory(
|
|
755
|
+ Environment.DIRECTORY_DOWNLOADS
|
|
756
|
+ )
|
|
757
|
+ file = File(directory, "appdownload")
|
|
758
|
+ if (!file.exists()) {
|
|
759
|
+ file.mkdirs()
|
|
760
|
+ } else {
|
|
761
|
+ FileUtils.deleteCurrentFlie(file)
|
|
762
|
+ }
|
|
763
|
+ } else {
|
|
764
|
+ getExternalFilesDir(null)?.let {
|
|
765
|
+ FileUtils.deleteCurrentFlie(it)
|
|
766
|
+ }
|
|
767
|
+ file = getExternalFilesDir(null)
|
|
768
|
+ }
|
|
769
|
+ modelList.forEach { app ->
|
|
770
|
+ try {
|
|
771
|
+ //获得已安装的应用判断版本,未安装的则直接静默安装。
|
|
772
|
+ val filter =
|
|
773
|
+ appList.filter { it.packageName.equals(app.appPackage) }
|
|
774
|
+ //列表中不存在,或者版本较低则更新
|
|
775
|
+ val apkPath = app.apkPath
|
|
776
|
+ val appName = app.appName
|
|
777
|
+ if (filter.isNotEmpty() || app.appPackage.equals(
|
|
778
|
+ packageName
|
|
779
|
+ )
|
|
780
|
+ ) {
|
|
781
|
+ //不为空filter.isNotEmpty()表示列表存在应用则判断版本号,app.appPackage.equals(packageName)表示需要判断是否更新桌面应用,都不满足表示应用不存在
|
|
782
|
+ val appversion =
|
|
783
|
+ if (app.appPackage.equals(packageName)) {
|
|
784
|
+ SystemUtil.getAppVersionCode(
|
|
785
|
+ this@MainActivity,
|
|
786
|
+ packageName
|
|
787
|
+ )
|
|
788
|
+ } else {
|
|
789
|
+ filter[0].versionNum
|
|
790
|
+ }
|
|
791
|
+ if (app.versionNum > appversion) {
|
|
792
|
+ //版本低则更新安装。
|
|
793
|
+ //AppDownLoadUtils.addToDownloadQueue(apkPath, appName,app.appPackage)
|
|
794
|
+ DownLoadUtils.addDownload(
|
|
795
|
+ apkPath,
|
|
796
|
+ app.appPackage,
|
|
797
|
+ File(
|
|
798
|
+ file.toString(),
|
|
799
|
+ "$appName.apk"
|
|
800
|
+ ).toString(),
|
|
801
|
+ app.appPackage,
|
|
802
|
+ appName,
|
|
803
|
+ app.versionNum.toLong()
|
|
804
|
+ )
|
|
805
|
+ }
|
|
806
|
+ } else {
|
|
807
|
+ //不存在,直接下载安装。
|
|
808
|
+ //AppDownLoadUtils.addToDownloadQueue(apkPath, appName,app.appPackage)
|
|
809
|
+ DownLoadUtils.addDownload(
|
|
810
|
+ apkPath,
|
|
811
|
+ app.appPackage,
|
|
812
|
+ File(
|
|
813
|
+ file.toString(),
|
|
814
|
+ "$appName.apk"
|
|
815
|
+ ).toString(),
|
|
816
|
+ app.appPackage,
|
|
817
|
+ appName,
|
|
818
|
+ app.versionNum.toLong()
|
|
819
|
+ )
|
|
820
|
+ }
|
|
821
|
+ } catch (e: Exception) {
|
|
822
|
+ LogShow("问题" + e.toString())
|
|
823
|
+ }
|
|
824
|
+ }
|
|
825
|
+ } else {
|
|
826
|
+ // 用户拒绝了安装权限,处理相应逻辑
|
|
827
|
+ viewModel.getAppList()
|
|
828
|
+ }
|
|
829
|
+ }
|
|
830
|
+ }
|
|
831
|
+ }
|
|
832
|
+
|
|
833
|
+ }
|
|
834
|
+
|
830
|
835
|
|
831
|
836
|
private fun startAutoApp(autoAppBean: AutoAppBean) {
|
832
|
837
|
try {
|