|
@@ -7,8 +7,8 @@ import android.app.ActivityManager
|
7
|
7
|
import android.content.Context
|
8
|
8
|
import android.content.Intent
|
9
|
9
|
import android.content.IntentFilter
|
|
10
|
+import android.content.pm.PackageManager
|
10
|
11
|
import android.graphics.Color
|
11
|
|
-import android.os.Build
|
12
|
12
|
import android.provider.Settings
|
13
|
13
|
import android.view.View
|
14
|
14
|
import android.widget.Button
|
|
@@ -16,6 +16,7 @@ import android.widget.EditText
|
16
|
16
|
import android.widget.TextView
|
17
|
17
|
import android.widget.Toast
|
18
|
18
|
import androidx.activity.addCallback
|
|
19
|
+import androidx.multidex.BuildConfig
|
19
|
20
|
import androidx.recyclerview.widget.GridLayoutManager
|
20
|
21
|
import androidx.work.PeriodicWorkRequest
|
21
|
22
|
import androidx.work.WorkManager
|
|
@@ -27,18 +28,17 @@ import com.xhly.corelib.bean.AppInfo
|
27
|
28
|
import com.xhly.corelib.eventbus.UIEvent
|
28
|
29
|
import com.xhly.corelib.utils.AppUtils
|
29
|
30
|
import com.xhly.corelib.utils.CustomOSUtils
|
30
|
|
-import com.xhly.corelib.utils.FileSizeUtils
|
31
|
31
|
import com.xhly.corelib.utils.LogShow
|
32
|
|
-import com.xhly.corelib.utils.PhoneInfoUtils
|
33
|
32
|
import com.xhly.corelib.utils.SystemUtil
|
34
|
33
|
import com.xhly.manageapp.AppAdapter
|
35
|
34
|
import com.xhly.manageapp.ManageApplication
|
36
|
35
|
import com.xhly.manageapp.R
|
37
|
36
|
import com.xhly.manageapp.bean.EventLog
|
|
37
|
+import com.xhly.manageapp.bean.UpdateBean
|
38
|
38
|
import com.xhly.manageapp.bean.log.LogdOperateBean
|
39
|
39
|
import com.xhly.manageapp.bean.strategy.StrategyBean
|
|
40
|
+import com.xhly.manageapp.bean.user.UserBean
|
40
|
41
|
import com.xhly.manageapp.broadcastreceiver.AppInstallReceiver
|
41
|
|
-import com.xhly.manageapp.broadcastreceiver.SDReceiver
|
42
|
42
|
import com.xhly.manageapp.databinding.ActivityMainBinding
|
43
|
43
|
import com.xhly.manageapp.service.ManageAccessibilityService
|
44
|
44
|
import com.xhly.manageapp.service.websocket.AppSocketService
|
|
@@ -55,9 +55,7 @@ import java.util.concurrent.TimeUnit
|
55
|
55
|
class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>() {
|
56
|
56
|
lateinit var adapter: AppAdapter
|
57
|
57
|
|
58
|
|
- /*private var csdkManager = CSDKManager(this)*/
|
59
|
58
|
private var mMyInstallReceiver: AppInstallReceiver? = null
|
60
|
|
- private var mySDReceiver: SDReceiver? = null
|
61
|
59
|
private var dataList: ArrayList<AppInfo> = arrayListOf()
|
62
|
60
|
|
63
|
61
|
override fun getBinding() = ActivityMainBinding.inflate(layoutInflater)
|
|
@@ -80,7 +78,6 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>() {
|
80
|
78
|
UIEvent("2005").post()
|
81
|
79
|
}
|
82
|
80
|
registerAppInstallReceiver()
|
83
|
|
- // registerSDReceiver()
|
84
|
81
|
/*
|
85
|
82
|
使用情况权限
|
86
|
83
|
val permissionIntent = Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS)
|
|
@@ -127,6 +124,7 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>() {
|
127
|
124
|
}
|
128
|
125
|
onBackPressedDispatcher.addCallback {
|
129
|
126
|
//屏蔽返回
|
|
127
|
+
|
130
|
128
|
}
|
131
|
129
|
}
|
132
|
130
|
|
|
@@ -138,6 +136,8 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>() {
|
138
|
136
|
viewModel.uploadAppStrategy()
|
139
|
137
|
useStrategy()
|
140
|
138
|
updatePadInfo()
|
|
139
|
+ updateMcApp()
|
|
140
|
+ getLocation()
|
141
|
141
|
try {
|
142
|
142
|
var s =
|
143
|
143
|
"厂商" + CustomOSUtils.getSystemBrand() + ",型号" + CustomOSUtils.getSystemDevice() + ",系统版本" + CustomOSUtils.getSystemDisplay()
|
|
@@ -147,6 +147,36 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>() {
|
147
|
147
|
requestPermissionAndShotView()
|
148
|
148
|
}
|
149
|
149
|
|
|
150
|
+ private fun updateMcApp() {
|
|
151
|
+ //每天请求一次app更新接口
|
|
152
|
+ try {
|
|
153
|
+ var userBean = spUtils.getFromJson(Const.USERINFO, UserBean().javaClass) as UserBean
|
|
154
|
+ //获得pad信息提交时间,如果为同一天则不在上传,不然继续上传
|
|
155
|
+ val padTime = spUtils.getParam(Const.PADUPDATETIMEKEY, 0L) as Long
|
|
156
|
+ val instance = Calendar.getInstance()
|
|
157
|
+ val currentYear = instance.get(Calendar.YEAR)
|
|
158
|
+ val currentDay = instance.get(Calendar.DAY_OF_YEAR)
|
|
159
|
+ instance.timeInMillis = padTime
|
|
160
|
+ val year = instance.get(Calendar.YEAR)
|
|
161
|
+ val day = instance.get(Calendar.DAY_OF_YEAR)
|
|
162
|
+ if (!(currentYear == year && currentDay == day)) {
|
|
163
|
+ val updateBean = UpdateBean()
|
|
164
|
+ ManageApplication.getDeviceInfo()?.let {
|
|
165
|
+ updateBean.sn = it
|
|
166
|
+ }
|
|
167
|
+ val packageInfo =
|
|
168
|
+ packageManager.getPackageInfo(packageName, PackageManager.GET_META_DATA)
|
|
169
|
+ updateBean.cversion = packageInfo.versionName
|
|
170
|
+ updateBean.schoolid=userBean.schoolid
|
|
171
|
+ updateBean.userid=userBean.userid
|
|
172
|
+ updateBean.regionid=userBean.regionid
|
|
173
|
+ viewModel.updateMcApp(updateBean)
|
|
174
|
+ }
|
|
175
|
+ } catch (e: Exception) {
|
|
176
|
+
|
|
177
|
+ }
|
|
178
|
+ }
|
|
179
|
+
|
150
|
180
|
@SuppressLint("CheckResult")
|
151
|
181
|
private fun updatePadInfo() {
|
152
|
182
|
try {
|
|
@@ -162,16 +192,16 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>() {
|
162
|
192
|
val request = rxPermissions.request(Manifest.permission.READ_PHONE_STATE)
|
163
|
193
|
//权限通过不通过都要执行
|
164
|
194
|
request.subscribe({ granted: Boolean ->
|
165
|
|
- var iccid =""
|
166
|
|
- if (granted){
|
167
|
|
- iccid = SystemUtil.getICCID(this)
|
|
195
|
+ var iccid = ""
|
|
196
|
+ if (granted) {
|
|
197
|
+ iccid = SystemUtil.getICCID(this)
|
168
|
198
|
}
|
169
|
199
|
if (!(currentYear == year && currentDay == day)) {
|
170
|
|
- viewModel.updatePadInfo(PadInfoUtils().getPadInfo(this,iccid))
|
|
200
|
+ viewModel.updatePadInfo(PadInfoUtils().getPadInfo(this, iccid))
|
171
|
201
|
}
|
172
|
202
|
}, {
|
173
|
203
|
if (!(currentYear == year && currentDay == day)) {
|
174
|
|
- viewModel.updatePadInfo(PadInfoUtils().getPadInfo(this,""))
|
|
204
|
+ viewModel.updatePadInfo(PadInfoUtils().getPadInfo(this, ""))
|
175
|
205
|
}
|
176
|
206
|
})
|
177
|
207
|
} catch (e: Exception) {
|
|
@@ -179,6 +209,23 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>() {
|
179
|
209
|
}
|
180
|
210
|
}
|
181
|
211
|
|
|
212
|
+ @SuppressLint("CheckResult")
|
|
213
|
+ private fun getLocation() {
|
|
214
|
+ val rxPermissions = RxPermissions(this)
|
|
215
|
+ rxPermissions.request(
|
|
216
|
+ Manifest.permission.ACCESS_FINE_LOCATION,
|
|
217
|
+ Manifest.permission.ACCESS_COARSE_LOCATION
|
|
218
|
+ ).subscribe({
|
|
219
|
+ if (it) {
|
|
220
|
+ SystemUtil.getLocation(this)
|
|
221
|
+ } else {
|
|
222
|
+ LogShow("没有权限")
|
|
223
|
+ }
|
|
224
|
+ }, {
|
|
225
|
+ LogShow("没有权限" + it.message)
|
|
226
|
+ })
|
|
227
|
+ }
|
|
228
|
+
|
182
|
229
|
private fun useStrategy() {
|
183
|
230
|
//获得sputils中的数据设置状态,以及策略
|
184
|
231
|
try {
|
|
@@ -375,18 +422,6 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>() {
|
375
|
422
|
}
|
376
|
423
|
|
377
|
424
|
|
378
|
|
- private fun registerSDReceiver() {
|
379
|
|
- val intentFilter = IntentFilter();
|
380
|
|
- intentFilter.addAction(Intent.ACTION_MEDIA_MOUNTED)
|
381
|
|
- intentFilter.addAction(Intent.ACTION_MEDIA_EJECT)
|
382
|
|
- intentFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED)
|
383
|
|
- intentFilter.addDataScheme("file")
|
384
|
|
- intentFilter.priority = 1000
|
385
|
|
- mySDReceiver = SDReceiver()
|
386
|
|
- registerReceiver(mySDReceiver, intentFilter);
|
387
|
|
- }
|
388
|
|
-
|
389
|
|
-
|
390
|
425
|
private fun showEditDialog() {
|
391
|
426
|
CustomDialog.build()
|
392
|
427
|
.setCustomView(object : OnBindView<CustomDialog>(R.layout.layout_edit_dialog) {
|
|
@@ -435,9 +470,6 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>() {
|
435
|
470
|
mMyInstallReceiver?.let {
|
436
|
471
|
unregisterReceiver(it)
|
437
|
472
|
}
|
438
|
|
- mySDReceiver?.let {
|
439
|
|
- unregisterReceiver(it)
|
440
|
|
- }
|
441
|
473
|
LogShow("MainActivity被销毁")
|
442
|
474
|
}
|
443
|
475
|
|
|
@@ -462,8 +494,8 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>() {
|
462
|
494
|
private fun startWorkManager() {
|
463
|
495
|
WorkManager.getInstance(this).cancelAllWork()
|
464
|
496
|
// 周期性任务时间最少15分钟 所以除以实际周期的时间 看需要加入几个任务
|
465
|
|
- val taskList = arrayListOf(5, 10)
|
466
|
|
- for (taskNo in taskList) {
|
|
497
|
+ /*val taskList = arrayListOf(5, 10)*/
|
|
498
|
+ for (taskNo in 1..10) {
|
467
|
499
|
val request = PeriodicWorkRequest
|
468
|
500
|
// 最少15分钟 PeriodicWorkRequest
|
469
|
501
|
.Builder(TimingWorker::class.java, 15, TimeUnit.MINUTES)
|