Browse Source

1.增加平板信息提交接口以及bean类。

2.SystemUtil增加wifimac和蓝牙mac请求方法。
master
wangwanlei 11 months ago
parent
commit
79c10ad7bc

+ 78
- 0
app/src/main/java/com/xhly/manageapp/bean/log/PadInfoBean.kt View File

1
+package com.xhly.manageapp.bean.log
2
+
3
+class PadInfoBean {
4
+    /**
5
+     * 用户id
6
+     */
7
+    var userid = 0
8
+
9
+    /**
10
+     * 设备型号
11
+     */
12
+    var deviceModel = ""
13
+
14
+    /**
15
+     * 设备版本
16
+     */
17
+    var deviceVersion = ""
18
+
19
+    /**
20
+     * 设备号
21
+     */
22
+    var sn = ""
23
+
24
+    /**
25
+     * WiFi/MAC
26
+     */
27
+    var wifyMac = ""
28
+
29
+    /**
30
+     * 蓝牙MAC
31
+     */
32
+    var blueMac = ""
33
+
34
+    /**
35
+     * 系统内核
36
+     */
37
+    var sysKernel = ""
38
+
39
+    /**
40
+     * 设备名称
41
+     */
42
+    var deviceName = ""
43
+
44
+    /**
45
+     * 是否root:0否1是
46
+     */
47
+    var root = 0
48
+
49
+    /**
50
+     * 平板ROM版本
51
+     */
52
+    var romVersion = ""
53
+
54
+    /**
55
+     * SIM序列号
56
+     */
57
+    var sim = ""
58
+
59
+    /**
60
+     * 总内存
61
+     */
62
+    var totalMemory = 0L
63
+
64
+    /**
65
+     * 已使用内存
66
+     */
67
+    var usedMemory = 0L
68
+
69
+    /**
70
+     * 学校id
71
+     */
72
+    var schoolid = 0
73
+
74
+    /**
75
+     * 区域id
76
+     */
77
+    var regionid = 0
78
+}

+ 26
- 0
app/src/main/java/com/xhly/manageapp/bean/log/PadLocationBean.kt View File

1
+package com.xhly.manageapp.bean.log
2
+
3
+/**
4
+ * 上传设备位置
5
+ */
6
+class PadLocationBean {
7
+    /**
8
+     * 经度
9
+     */
10
+    var lon = 0
11
+
12
+    /**
13
+     * 维度
14
+     */
15
+    var lat = 0
16
+
17
+    /**
18
+     * 用户id
19
+     */
20
+    var userid = ""
21
+
22
+    /**
23
+     * 设备sn
24
+     */
25
+    var sn = ""
26
+}

+ 9
- 0
app/src/main/java/com/xhly/manageapp/bean/user/UserBean.kt View File

1
+package com.xhly.manageapp.bean.user
2
+
3
+class UserBean {
4
+    var userid = 0
5
+    var schoolid = 0
6
+
7
+    //区域码
8
+    var regionid = 0
9
+}

+ 10
- 0
app/src/main/java/com/xhly/manageapp/network/UriAdress.kt View File

25
      * 获得应用策略
25
      * 获得应用策略
26
      */
26
      */
27
     const val APP_LISTPAD = "/stApp/list_pad"
27
     const val APP_LISTPAD = "/stApp/list_pad"
28
+
29
+    /**
30
+     * 设备--地理位置添加
31
+     */
32
+    const val PADLOCATIONADD = "/userPosition/add"
33
+
34
+    /**
35
+     * 设备详情--添加和更新
36
+     */
37
+    const val PADDETAILADD = "/deviceDetail/add"
28
 }
38
 }

+ 13
- 0
app/src/main/java/com/xhly/manageapp/network/log/LogService.kt View File

1
 package com.xhly.manageapp.network.log
1
 package com.xhly.manageapp.network.log
2
 
2
 
3
+import com.xhly.corelib.network.bean.ResponseData
3
 import com.xhly.manageapp.bean.log.LogAppStartBean
4
 import com.xhly.manageapp.bean.log.LogAppStartBean
4
 import com.xhly.manageapp.bean.log.LogdOperateBean
5
 import com.xhly.manageapp.bean.log.LogdOperateBean
6
+import com.xhly.manageapp.bean.log.PadInfoBean
7
+import com.xhly.manageapp.bean.log.PadLocationBean
5
 import com.xhly.manageapp.network.UriAdress
8
 import com.xhly.manageapp.network.UriAdress
6
 import retrofit2.http.Body
9
 import retrofit2.http.Body
7
 import retrofit2.http.POST
10
 import retrofit2.http.POST
21
     @POST(UriAdress.LOGAPPSTARTADD)
24
     @POST(UriAdress.LOGAPPSTARTADD)
22
     suspend fun postLogAppStartAdd(@Body logApp: List<LogAppStartBean>)
25
     suspend fun postLogAppStartAdd(@Body logApp: List<LogAppStartBean>)
23
 
26
 
27
+    /**
28
+     * 设备--地理位置日志
29
+     */
30
+    @POST(UriAdress.PADLOCATIONADD)
31
+    suspend fun postPadLocation(@Body padLocationBean: PadLocationBean)
24
 
32
 
33
+    /**
34
+     * 设备--详情日志
35
+     */
36
+    @POST(UriAdress.PADDETAILADD)
37
+    suspend fun postPadDetailAdd(@Body padInfoBean: PadInfoBean):ResponseData<Any?>
25
 }
38
 }

+ 48
- 7
app/src/main/java/com/xhly/manageapp/ui/main/activity/MainActivity.kt View File

8
 import android.content.Intent
8
 import android.content.Intent
9
 import android.content.IntentFilter
9
 import android.content.IntentFilter
10
 import android.graphics.Color
10
 import android.graphics.Color
11
+import android.os.Build
11
 import android.provider.Settings
12
 import android.provider.Settings
12
 import android.view.View
13
 import android.view.View
13
 import android.widget.Button
14
 import android.widget.Button
26
 import com.xhly.corelib.eventbus.UIEvent
27
 import com.xhly.corelib.eventbus.UIEvent
27
 import com.xhly.corelib.utils.AppUtils
28
 import com.xhly.corelib.utils.AppUtils
28
 import com.xhly.corelib.utils.CustomOSUtils
29
 import com.xhly.corelib.utils.CustomOSUtils
30
+import com.xhly.corelib.utils.FileSizeUtils
29
 import com.xhly.corelib.utils.LogShow
31
 import com.xhly.corelib.utils.LogShow
30
 import com.xhly.corelib.utils.PhoneInfoUtils
32
 import com.xhly.corelib.utils.PhoneInfoUtils
33
+import com.xhly.corelib.utils.SystemUtil
31
 import com.xhly.manageapp.AppAdapter
34
 import com.xhly.manageapp.AppAdapter
32
 import com.xhly.manageapp.ManageApplication
35
 import com.xhly.manageapp.ManageApplication
33
 import com.xhly.manageapp.R
36
 import com.xhly.manageapp.R
42
 import com.xhly.manageapp.ui.ManageActivity
45
 import com.xhly.manageapp.ui.ManageActivity
43
 import com.xhly.manageapp.ui.login.activity.LoginActivity
46
 import com.xhly.manageapp.ui.login.activity.LoginActivity
44
 import com.xhly.manageapp.ui.main.viewmodel.MainViewModel
47
 import com.xhly.manageapp.ui.main.viewmodel.MainViewModel
48
+import com.xhly.manageapp.utils.PadInfoUtils
45
 import com.xhly.manageapp.utils.StrategyUtils
49
 import com.xhly.manageapp.utils.StrategyUtils
46
 import com.xhly.manageapp.workmanager.TimingWorker
50
 import com.xhly.manageapp.workmanager.TimingWorker
51
+import java.util.Calendar
47
 import java.util.concurrent.TimeUnit
52
 import java.util.concurrent.TimeUnit
48
 
53
 
49
 
54
 
95
             //存储app时间策略
100
             //存储app时间策略
96
             spUtils.saveJson(Const.APPSTRATEGYBEANKEY, it)
101
             spUtils.saveJson(Const.APPSTRATEGYBEANKEY, it)
97
         }
102
         }
103
+        viewModel.padInfoData.observe(this) {
104
+            //存储信息上传时间
105
+            if (it) {
106
+                spUtils.setParam(Const.PADINFOTIMEKEY, System.currentTimeMillis())
107
+            }
108
+        }
98
         startWorkManager()
109
         startWorkManager()
99
     }
110
     }
100
 
111
 
111
             spUtils.setParam(Const.DISABLEPAD, false)
122
             spUtils.setParam(Const.DISABLEPAD, false)
112
             useStrategy()
123
             useStrategy()
113
             if (mBinding.mainLlayout.visibility == View.GONE) {
124
             if (mBinding.mainLlayout.visibility == View.GONE) {
114
-                Toast("当前不在可用时间。")
125
+                Toast(getString(R.string.apptimestoptips))
115
             }
126
             }
116
         }
127
         }
117
         onBackPressedDispatcher.addCallback {
128
         onBackPressedDispatcher.addCallback {
126
         viewModel.updateStrategy()
137
         viewModel.updateStrategy()
127
         viewModel.uploadAppStrategy()
138
         viewModel.uploadAppStrategy()
128
         useStrategy()
139
         useStrategy()
140
+        updatePadInfo()
129
         try {
141
         try {
130
             var s =
142
             var s =
131
                 "厂商" + CustomOSUtils.getSystemBrand() + ",型号" + CustomOSUtils.getSystemDevice() + ",系统版本" + CustomOSUtils.getSystemDisplay()
143
                 "厂商" + CustomOSUtils.getSystemBrand() + ",型号" + CustomOSUtils.getSystemDevice() + ",系统版本" + CustomOSUtils.getSystemDisplay()
135
         requestPermissionAndShotView()
147
         requestPermissionAndShotView()
136
     }
148
     }
137
 
149
 
150
+    @SuppressLint("CheckResult")
151
+    private fun updatePadInfo() {
152
+        try {
153
+            //获得pad信息提交时间,如果为同一天则不在上传,不然继续上传
154
+            val padTime = spUtils.getParam(Const.PADINFOTIMEKEY, 0L) as Long
155
+            val instance = Calendar.getInstance()
156
+            val currentYear = instance.get(Calendar.YEAR)
157
+            val currentDay = instance.get(Calendar.DAY_OF_YEAR)
158
+            instance.timeInMillis = padTime
159
+            val year = instance.get(Calendar.YEAR)
160
+            val day = instance.get(Calendar.DAY_OF_YEAR)
161
+            val rxPermissions = RxPermissions(this)
162
+            val request = rxPermissions.request(Manifest.permission.READ_PHONE_STATE)
163
+            //权限通过不通过都要执行
164
+            request.subscribe({ granted: Boolean ->
165
+                var iccid =""
166
+                if (granted){
167
+                     iccid = SystemUtil.getICCID(this)
168
+                }
169
+                if (!(currentYear == year && currentDay == day)) {
170
+                    viewModel.updatePadInfo(PadInfoUtils().getPadInfo(this,iccid))
171
+                }
172
+            }, {
173
+                if (!(currentYear == year && currentDay == day)) {
174
+                    viewModel.updatePadInfo(PadInfoUtils().getPadInfo(this,""))
175
+                }
176
+            })
177
+        } catch (e: Exception) {
178
+
179
+        }
180
+    }
181
+
138
     private fun useStrategy() {
182
     private fun useStrategy() {
139
         //获得sputils中的数据设置状态,以及策略
183
         //获得sputils中的数据设置状态,以及策略
140
         try {
184
         try {
402
      */
446
      */
403
     @SuppressLint("CheckResult")
447
     @SuppressLint("CheckResult")
404
     private fun requestPermissionAndShotView() {
448
     private fun requestPermissionAndShotView() {
405
-        val phoneInfoUtils = PhoneInfoUtils(this)
406
-
407
         var iccid = ""
449
         var iccid = ""
408
         val rxPermissions = RxPermissions(this)
450
         val rxPermissions = RxPermissions(this)
409
         var request = rxPermissions.request(Manifest.permission.READ_PHONE_STATE)
451
         var request = rxPermissions.request(Manifest.permission.READ_PHONE_STATE)
410
         request.subscribe({ granted: Boolean ->
452
         request.subscribe({ granted: Boolean ->
411
             if (granted) {
453
             if (granted) {
412
-                iccid = phoneInfoUtils.iccid
413
-                LogShow("手机信息" + iccid + "||" + iccid)
454
+
414
             }
455
             }
415
         }, {
456
         }, {
416
-            LogShow("手机信息失败了" + it.message)
457
+
417
         })
458
         })
418
     }
459
     }
419
 
460
 
422
         WorkManager.getInstance(this).cancelAllWork()
463
         WorkManager.getInstance(this).cancelAllWork()
423
         // 周期性任务时间最少15分钟 所以除以实际周期的时间  看需要加入几个任务
464
         // 周期性任务时间最少15分钟 所以除以实际周期的时间  看需要加入几个任务
424
         val taskList = arrayListOf(5, 10)
465
         val taskList = arrayListOf(5, 10)
425
-        for (taskNo in 1..10) {
466
+        for (taskNo in taskList) {
426
             val request = PeriodicWorkRequest
467
             val request = PeriodicWorkRequest
427
                 // 最少15分钟 PeriodicWorkRequest
468
                 // 最少15分钟 PeriodicWorkRequest
428
                 .Builder(TimingWorker::class.java, 15, TimeUnit.MINUTES)
469
                 .Builder(TimingWorker::class.java, 15, TimeUnit.MINUTES)

+ 13
- 1
app/src/main/java/com/xhly/manageapp/ui/main/viewmodel/MainViewModel.kt View File

4
 import androidx.lifecycle.MutableLiveData
4
 import androidx.lifecycle.MutableLiveData
5
 import com.xhly.corelib.base.viewmodel.CommonBaseViewModel
5
 import com.xhly.corelib.base.viewmodel.CommonBaseViewModel
6
 import com.xhly.corelib.network.RetrofitService
6
 import com.xhly.corelib.network.RetrofitService
7
+import com.xhly.corelib.network.bean.ResponseData
7
 import com.xhly.manageapp.bean.AppModel
8
 import com.xhly.manageapp.bean.AppModel
8
 import com.xhly.manageapp.bean.ListAppBean
9
 import com.xhly.manageapp.bean.ListAppBean
9
 import com.xhly.manageapp.bean.log.LogdOperateBean
10
 import com.xhly.manageapp.bean.log.LogdOperateBean
11
+import com.xhly.manageapp.bean.log.PadInfoBean
10
 import com.xhly.manageapp.bean.strategy.AppTimeManageBean
12
 import com.xhly.manageapp.bean.strategy.AppTimeManageBean
11
 import com.xhly.manageapp.bean.strategy.StrategyBean
13
 import com.xhly.manageapp.bean.strategy.StrategyBean
12
 import com.xhly.manageapp.network.app.AppService
14
 import com.xhly.manageapp.network.app.AppService
23
     val strategyData: LiveData<StrategyBean> = strategy
25
     val strategyData: LiveData<StrategyBean> = strategy
24
     private val appStrategy = MutableLiveData<ArrayList<AppTimeManageBean>>()
26
     private val appStrategy = MutableLiveData<ArrayList<AppTimeManageBean>>()
25
     val appStrategyData: LiveData<ArrayList<AppTimeManageBean>> = appStrategy
27
     val appStrategyData: LiveData<ArrayList<AppTimeManageBean>> = appStrategy
28
+    private val padInfo=MutableLiveData<Boolean>()
29
+    val padInfoData:LiveData<Boolean> =padInfo
26
     fun getAppList() {
30
     fun getAppList() {
27
         launchUI {
31
         launchUI {
28
             val postListApp = appService.postListApp(ListAppBean())
32
             val postListApp = appService.postListApp(ListAppBean())
62
     }
66
     }
63
 
67
 
64
     fun uploadAppStrategy() {
68
     fun uploadAppStrategy() {
65
-
66
         launchUI {
69
         launchUI {
67
             val postAppListPad = strategyService.postAppListPad()
70
             val postAppListPad = strategyService.postAppListPad()
68
             if (postAppListPad.code == 0) {
71
             if (postAppListPad.code == 0) {
78
             }
81
             }
79
         }
82
         }
80
     }
83
     }
84
+
85
+    fun updatePadInfo(padInfoBean: PadInfoBean){
86
+        launchUI {
87
+            var anyResponseData = logService.postPadDetailAdd(padInfoBean)
88
+            if (anyResponseData.code==0){
89
+                padInfo.value=true
90
+            }
91
+        }
92
+    }
81
 }
93
 }

+ 44
- 0
app/src/main/java/com/xhly/manageapp/utils/PadInfoUtils.kt View File

1
+package com.xhly.manageapp.utils
2
+
3
+import android.content.Context
4
+import android.os.Build
5
+import com.xhly.corelib.Const
6
+import com.xhly.corelib.utils.FileSizeUtils
7
+import com.xhly.corelib.utils.SharedPreferencesUtils
8
+import com.xhly.corelib.utils.SystemUtil
9
+import com.xhly.manageapp.ManageApplication
10
+import com.xhly.manageapp.bean.log.PadInfoBean
11
+import com.xhly.manageapp.bean.user.UserBean
12
+
13
+class PadInfoUtils {
14
+
15
+    fun getPadInfo(context: Context,simIccID:String):PadInfoBean{
16
+        val spUtils by lazy { SharedPreferencesUtils.getInstance(context) }
17
+        //val json= spUtils.getFromJson(Const.USERINFO, UserBean().javaClass)
18
+        val json=UserBean()
19
+        json.userid=1
20
+        json.schoolid=1
21
+        json.regionid=1
22
+        val padInfoBean = PadInfoBean()
23
+        json?.let {
24
+            val userBean = it as UserBean
25
+            padInfoBean.userid=userBean.userid
26
+            padInfoBean.schoolid=userBean.schoolid
27
+            ManageApplication.getDeviceInfo()?.let {sn->
28
+                padInfoBean.sn=sn
29
+            }
30
+            padInfoBean.deviceModel= Build.DEVICE
31
+            padInfoBean.deviceVersion=Build.VERSION.CODENAME
32
+            padInfoBean.wifyMac=SystemUtil.getWifiMac(context)
33
+            padInfoBean.blueMac=SystemUtil.getBluetoothMac()
34
+            padInfoBean.sysKernel=SystemUtil.getKernelVersion()
35
+            padInfoBean.deviceName=Build.DEVICE
36
+            padInfoBean.root=if (SystemUtil.isSuEnable()) 1 else 0
37
+            padInfoBean.romVersion=Build.DISPLAY
38
+            padInfoBean.sim=simIccID
39
+            padInfoBean.totalMemory=FileSizeUtils.getTotalSpace(context)
40
+            padInfoBean.usedMemory=FileSizeUtils.getFreeSpace(context)
41
+        }
42
+        return padInfoBean
43
+    }
44
+}

+ 11
- 4
app/src/main/java/com/xhly/manageapp/workmanager/TimingWorker.kt View File

6
 import androidx.appcompat.app.AppCompatActivity
6
 import androidx.appcompat.app.AppCompatActivity
7
 import androidx.work.Worker
7
 import androidx.work.Worker
8
 import androidx.work.WorkerParameters
8
 import androidx.work.WorkerParameters
9
+import com.xhly.corelib.Const
9
 import com.xhly.corelib.network.RetrofitService
10
 import com.xhly.corelib.network.RetrofitService
10
 import com.xhly.corelib.utils.AppUtils
11
 import com.xhly.corelib.utils.AppUtils
11
-import com.xhly.corelib.utils.LogShow
12
+import com.xhly.corelib.utils.SharedPreferencesUtils
12
 import com.xhly.corelib.utils.toFormat
13
 import com.xhly.corelib.utils.toFormat
13
 import com.xhly.manageapp.ManageApplication
14
 import com.xhly.manageapp.ManageApplication
14
 import com.xhly.manageapp.bean.log.LogAppStartBean
15
 import com.xhly.manageapp.bean.log.LogAppStartBean
25
 class TimingWorker(context: Context, workerParams: WorkerParameters) :
26
 class TimingWorker(context: Context, workerParams: WorkerParameters) :
26
     Worker(context, workerParams) {
27
     Worker(context, workerParams) {
27
     private val serviceScope = CoroutineScope(MainScope().coroutineContext)
28
     private val serviceScope = CoroutineScope(MainScope().coroutineContext)
29
+    private val spUtils by lazy {
30
+        SharedPreferencesUtils.getInstance(context)
31
+    }
32
+
28
     override fun doWork(): Result {
33
     override fun doWork(): Result {
29
         val result: Result = Result.success()
34
         val result: Result = Result.success()
30
         val logService = RetrofitService.create<LogService>()
35
         val logService = RetrofitService.create<LogService>()
33
             if (appInfo.size > 0) {
38
             if (appInfo.size > 0) {
34
                 logService.postLogAppStartAdd(appInfo)
39
                 logService.postLogAppStartAdd(appInfo)
35
             }
40
             }
41
+
42
+
36
         }
43
         }
37
         return result
44
         return result
38
     }
45
     }
46
         val usageManager =
53
         val usageManager =
47
             applicationContext.getSystemService(AppCompatActivity.USAGE_STATS_SERVICE) as UsageStatsManager
54
             applicationContext.getSystemService(AppCompatActivity.USAGE_STATS_SERVICE) as UsageStatsManager
48
         val startList = arrayListOf<LogAppStartBean>()
55
         val startList = arrayListOf<LogAppStartBean>()
49
-        var sn = ManageApplication.getDeviceInfo()
56
+        val sn = ManageApplication.getDeviceInfo()
50
         if (usageManager != null) {
57
         if (usageManager != null) {
51
             val endTime = System.currentTimeMillis()
58
             val endTime = System.currentTimeMillis()
52
             val startTime = timeInMillis
59
             val startTime = timeInMillis
63
                             dataList.firstOrNull { event.packageName.equals(it.packageName) }
70
                             dataList.firstOrNull { event.packageName.equals(it.packageName) }
64
                         first?.let {
71
                         first?.let {
65
                             sn?.let {
72
                             sn?.let {
66
-                                appStartBean.sn=sn
73
+                                appStartBean.sn = sn
67
                             }
74
                             }
68
                             appStartBean.appName = first.name
75
                             appStartBean.appName = first.name
69
                             appStartBean.appPackage = first.packageName
76
                             appStartBean.appPackage = first.packageName
81
                             dataList.firstOrNull { event.packageName.equals(it.packageName) }
88
                             dataList.firstOrNull { event.packageName.equals(it.packageName) }
82
                         first?.let {
89
                         first?.let {
83
                             sn?.let {
90
                             sn?.let {
84
-                                appStartBean.sn=sn
91
+                                appStartBean.sn = sn
85
                             }
92
                             }
86
                             appStartBean.appName = first.name
93
                             appStartBean.appName = first.name
87
                             appStartBean.appPackage = first.packageName
94
                             appStartBean.appPackage = first.packageName

+ 12
- 4
corelib/src/main/java/com/xhly/corelib/Const.kt View File

1
 package com.xhly.corelib
1
 package com.xhly.corelib
2
 
2
 
3
-import android.bluetooth.BluetoothManager
4
-
5
 
3
 
6
 object Const {
4
 object Const {
7
     const val isDebug = true
5
     const val isDebug = true
78
 
76
 
79
     //标记蓝牙打开
77
     //标记蓝牙打开
80
     const val BLUETOOTHOPEN = "BLUETOOTHOPEN"
78
     const val BLUETOOTHOPEN = "BLUETOOTHOPEN"
79
+
81
     //标记USB连接电脑
80
     //标记USB连接电脑
82
-    const val USB_CONNECTED="USB_CONNECTED"
81
+    const val USB_CONNECTED = "USB_CONNECTED"
82
+
83
     //标记USB拔出电脑
83
     //标记USB拔出电脑
84
-    const val USB_NOCONNECTED="USB_NOCONNECTED"
84
+    const val USB_NOCONNECTED = "USB_NOCONNECTED"
85
+
85
     //标记更新策略
86
     //标记更新策略
86
     const val UPDATESTRATEGY = "UPDATESTRATEGY"
87
     const val UPDATESTRATEGY = "UPDATESTRATEGY"
87
 
88
 
88
     //存储平板策略
89
     //存储平板策略
89
     const val STRATEGYBEANKEY = "STRATEGYBEAN"
90
     const val STRATEGYBEANKEY = "STRATEGYBEAN"
91
+
90
     //存储app时间策略
92
     //存储app时间策略
91
     const val APPSTRATEGYBEANKEY = "APPSTRATEGYBEAN"
93
     const val APPSTRATEGYBEANKEY = "APPSTRATEGYBEAN"
92
 
94
 
95
+    //存储pad信息提交时间,如果为同一天则不在上传,不然继续上传
96
+    const val PADINFOTIMEKEY = "PADINFOTIMEKEY"
97
+
98
+    //存储用户信息
99
+    const val USERINFO = "USERINFO"
100
+
93
     //记录设备策略名称
101
     //记录设备策略名称
94
     const val DEVICETYPE1 = "摄像头"
102
     const val DEVICETYPE1 = "摄像头"
95
     const val DEVICETYPE2 = "蓝牙"
103
     const val DEVICETYPE2 = "蓝牙"

+ 32
- 3
corelib/src/main/java/com/xhly/corelib/utils/SystemUtil.java View File

1
 package com.xhly.corelib.utils;
1
 package com.xhly.corelib.utils;
2
 
2
 
3
+import android.bluetooth.BluetoothAdapter;
3
 import android.content.Context;
4
 import android.content.Context;
5
+import android.net.wifi.WifiInfo;
6
+import android.net.wifi.WifiManager;
4
 import android.os.Build;
7
 import android.os.Build;
5
 import android.telephony.SubscriptionInfo;
8
 import android.telephony.SubscriptionInfo;
6
 import android.telephony.SubscriptionManager;
9
 import android.telephony.SubscriptionManager;
132
 
135
 
133
 
136
 
134
     /**
137
     /**
135
-     * 是否存在su命令,并且有执行权限
138
+     * 是否存在su命令,并且有执行权限 判断是否root
136
      *
139
      *
137
      * @return 存在su命令,并且有执行权限返回true
140
      * @return 存在su命令,并且有执行权限返回true
138
      */
141
      */
179
                     String iccId1 = si1.getIccId();
182
                     String iccId1 = si1.getIccId();
180
                     String phoneNum1 = si1.getNumber();
183
                     String phoneNum1 = si1.getNumber();
181
                     iccid=iccId1;
184
                     iccid=iccId1;
185
+                    LogUtils.d("获得手机信息","问题是mei偶222尔与哦是的"+phoneNum1);
182
                 }
186
                 }
183
                 if (sis.size() >= 2) {
187
                 if (sis.size() >= 2) {
184
                     SubscriptionInfo si2 = sis.get(1);
188
                     SubscriptionInfo si2 = sis.get(1);
185
                     String iccId2 = si2.getIccId();
189
                     String iccId2 = si2.getIccId();
186
                     String phoneNum2 = si2.getNumber();
190
                     String phoneNum2 = si2.getNumber();
187
                     iccid=iccId2;
191
                     iccid=iccId2;
192
+                    LogUtils.d("获得手机信息","问题是mei偶尔与哦是的"+si2.toString());
188
                 }
193
                 }
189
                 // 获取SIM卡数量相关信息:
194
                 // 获取SIM卡数量相关信息:
190
                 int count = sm.getActiveSubscriptionInfoCount();//当前实际插卡数量
195
                 int count = sm.getActiveSubscriptionInfoCount();//当前实际插卡数量
191
                 int max = sm.getActiveSubscriptionInfoCountMax();//当前卡槽数量
196
                 int max = sm.getActiveSubscriptionInfoCountMax();//当前卡槽数量
192
             }
197
             }
193
         }catch (Exception e){
198
         }catch (Exception e){
194
-
199
+           LogUtils.d("获得手机信息","问题是"+e.toString());
195
         }
200
         }
196
         return iccid;
201
         return iccid;
197
     }
202
     }
198
 
203
 
199
-
204
+   public static String getWifiMac(Context context){
205
+        String wifiMac="";
206
+        try {
207
+            WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
208
+            WifiInfo connectionInfo = wifiManager.getConnectionInfo();
209
+            wifiMac = connectionInfo.getMacAddress();
210
+        }catch (Exception e){
211
+            LogUtils.d("获得手机信息","wifi问题是"+e.toString());
212
+        }
213
+        return wifiMac;
214
+   }
215
+
216
+   public static String getBluetoothMac(){
217
+       String bMac="";
218
+       try{
219
+           BluetoothAdapter defaultAdapter = BluetoothAdapter.getDefaultAdapter();
220
+          /* if (defaultAdapter.isEnabled()){
221
+               bMac= defaultAdapter.getAddress();
222
+           }*/
223
+           bMac= defaultAdapter.getAddress();
224
+       }catch (Exception e){
225
+           LogUtils.d("获得手机信息","bluetooth问题是"+e.toString());
226
+       }
227
+       return bMac;
228
+   }
200
 }
229
 }

Loading…
Cancel
Save