Pārlūkot izejas kodu

1.添加app更新接口。

master
wangwanlei pirms 1 gada
vecāks
revīzija
30b05ff77c

+ 25
- 0
app/src/main/java/com/xhly/manageapp/bean/UpdateBean.kt Parādīt failu

@@ -0,0 +1,25 @@
1
+package com.xhly.manageapp.bean
2
+
3
+class UpdateBean {
4
+    /**
5
+     * 用户id
6
+     */
7
+    var userid = 0L
8
+
9
+    /**
10
+     * 类型:1商店版本2桌面版本
11
+     */
12
+    var ctype = 2
13
+
14
+    /**
15
+     * 设备号
16
+     */
17
+    var sn = ""
18
+
19
+    /**
20
+     * 客户端版本
21
+     */
22
+    var cversion = ""
23
+    var schoolid = 0L
24
+    var regionid = 0L
25
+}

+ 2
- 2
app/src/main/java/com/xhly/manageapp/bean/log/PadInfoBean.kt Parādīt failu

@@ -69,10 +69,10 @@ class PadInfoBean {
69 69
     /**
70 70
      * 学校id
71 71
      */
72
-    var schoolid = 0
72
+    var schoolid = 0L
73 73
 
74 74
     /**
75 75
      * 区域id
76 76
      */
77
-    var regionid = 0
77
+    var regionid = 0L
78 78
 }

+ 35
- 3
app/src/main/java/com/xhly/manageapp/bean/user/UserBean.kt Parādīt failu

@@ -1,9 +1,41 @@
1 1
 package com.xhly.manageapp.bean.user
2 2
 
3 3
 class UserBean {
4
-    var userid = 0L
5
-    var schoolid = 0
4
+    //用于记录登录是否成功
5
+    var xhlyLoginSucess=true
6
+    //记录登录返回的msg
7
+    var xhlyLoginMessage:String?=""
8
+
9
+    var userid = 1L
10
+    var schoolid = 1L
6 11
 
7 12
     //区域码
8
-    var regionid = 0
13
+    var regionid = 1L
14
+
15
+    var username: String? = null
16
+    var loginname: String? = null
17
+    var classid: Int? = null
18
+    var loginpwd:String=""
19
+
20
+    /**
21
+     * 管控状态1管控中2解除管控
22
+     */
23
+    var control=1
24
+
25
+    /**
26
+     *手机号
27
+     */
28
+    var userphone:String?=null
29
+
30
+    /**
31
+     * 版本
32
+     */
33
+    var rversion=0L
34
+
35
+    /**
36
+     * Xh-Token-Key
37
+     */
38
+    var Xh_Token_Key:String?=null
39
+
40
+    var Xh_Token_Value:String?=null
9 41
 }

+ 11
- 0
app/src/main/java/com/xhly/manageapp/network/UriAdress.kt Parādīt failu

@@ -35,4 +35,15 @@ object UriAdress {
35 35
      * 设备详情--添加和更新
36 36
      */
37 37
     const val PADDETAILADD = "/deviceDetail/add"
38
+
39
+    /**
40
+     *获得客户端更新
41
+     */
42
+    const val CLIENT_ADD = "/client/add"
43
+
44
+    /**
45
+     * 登录接口
46
+     */
47
+    const val ULOGIN_LOGIN="/ulogin/login"
48
+
38 49
 }

+ 61
- 29
app/src/main/java/com/xhly/manageapp/ui/main/activity/MainActivity.kt Parādīt failu

@@ -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)

+ 18
- 7
app/src/main/java/com/xhly/manageapp/ui/main/viewmodel/MainViewModel.kt Parādīt failu

@@ -4,9 +4,9 @@ import androidx.lifecycle.LiveData
4 4
 import androidx.lifecycle.MutableLiveData
5 5
 import com.xhly.corelib.base.viewmodel.CommonBaseViewModel
6 6
 import com.xhly.corelib.network.RetrofitService
7
-import com.xhly.corelib.network.bean.ResponseData
8 7
 import com.xhly.manageapp.bean.AppModel
9 8
 import com.xhly.manageapp.bean.ListAppBean
9
+import com.xhly.manageapp.bean.UpdateBean
10 10
 import com.xhly.manageapp.bean.log.LogdOperateBean
11 11
 import com.xhly.manageapp.bean.log.PadInfoBean
12 12
 import com.xhly.manageapp.bean.strategy.AppTimeManageBean
@@ -25,8 +25,10 @@ class MainViewModel : CommonBaseViewModel() {
25 25
     val strategyData: LiveData<StrategyBean> = strategy
26 26
     private val appStrategy = MutableLiveData<ArrayList<AppTimeManageBean>>()
27 27
     val appStrategyData: LiveData<ArrayList<AppTimeManageBean>> = appStrategy
28
-    private val padInfo=MutableLiveData<Boolean>()
29
-    val padInfoData:LiveData<Boolean> =padInfo
28
+    private val padInfo = MutableLiveData<Boolean>()
29
+    val padInfoData: LiveData<Boolean> = padInfo
30
+    private val updateInfo = MutableLiveData<Boolean>()
31
+    val updateInfoData: LiveData<Boolean> = updateInfo
30 32
     fun getAppList() {
31 33
         launchUI {
32 34
             val postListApp = appService.postListApp(ListAppBean())
@@ -82,11 +84,20 @@ class MainViewModel : CommonBaseViewModel() {
82 84
         }
83 85
     }
84 86
 
85
-    fun updatePadInfo(padInfoBean: PadInfoBean){
87
+    fun updatePadInfo(padInfoBean: PadInfoBean) {
86 88
         launchUI {
87
-            var anyResponseData = logService.postPadDetailAdd(padInfoBean)
88
-            if (anyResponseData.code==0){
89
-                padInfo.value=true
89
+            val anyResponseData = logService.postPadDetailAdd(padInfoBean)
90
+            if (anyResponseData.code == 0) {
91
+                padInfo.value = true
92
+            }
93
+        }
94
+    }
95
+
96
+    fun updateMcApp(updateBean: UpdateBean) {
97
+        launchUI {
98
+            val postClientAdd = appService.postClientAdd(updateBean)
99
+            if (postClientAdd.code == 0) {
100
+                updateInfo.value = true
90 101
             }
91 102
         }
92 103
     }

Notiek ielāde…
Atcelt
Saglabāt