Browse Source

1.添加违规事件判断。

2.Bugly添加用户id.
20241218TB223FC(测试jar包)
wangwanlei 11 months ago
parent
commit
8420f8ec6e

+ 34
- 3
app/src/main/java/com/xhly/manageapp/broadcastreceiver/SimStateReceive.kt View File

8
 import com.xhly.corelib.Const
8
 import com.xhly.corelib.Const
9
 import com.xhly.corelib.eventbus.UIEvent
9
 import com.xhly.corelib.eventbus.UIEvent
10
 import com.xhly.corelib.utils.LogShow
10
 import com.xhly.corelib.utils.LogShow
11
+import com.xhly.corelib.utils.SharedPreferencesUtils
12
+import com.xhly.corelib.utils.SystemUtil
11
 
13
 
12
 class SimStateReceive : BroadcastReceiver() {
14
 class SimStateReceive : BroadcastReceiver() {
13
     override fun onReceive(context: Context, intent: Intent) {
15
     override fun onReceive(context: Context, intent: Intent) {
14
-        println("sim state changed")
15
         try {
16
         try {
17
+            val spUtils by lazy { SharedPreferencesUtils.getInstance(context) }
16
             if (intent.action == ACTION_SIM_STATE_CHANGED) {
18
             if (intent.action == ACTION_SIM_STATE_CHANGED) {
17
                 val tm = context.getSystemService(Service.TELEPHONY_SERVICE) as TelephonyManager
19
                 val tm = context.getSystemService(Service.TELEPHONY_SERVICE) as TelephonyManager
18
                 val state = tm.simState
20
                 val state = tm.simState
19
                 when (state) {
21
                 when (state) {
20
                     TelephonyManager.SIM_STATE_READY -> {
22
                     TelephonyManager.SIM_STATE_READY -> {
21
-                        LogShow("有SIM卡$SIM_VALID"+tm.simSerialNumber)
22
-                        UIEvent(Const.SIMINSTALL).post()
23
+                        LogShow("有SIM卡$SIM_VALID")
24
+                        val phoneList= arrayListOf<String>()
25
+                        try {//获得之前存储的手机号
26
+                            val fromJson =
27
+                                spUtils.getFromJson(Const.SIMPHONENUM, Array<String>::class.java)
28
+                            if (fromJson!=null){
29
+                                val strings = fromJson as ArrayList<String>
30
+                                phoneList.addAll(strings)
31
+                            }
32
+                        }catch (e:Exception){
33
+
34
+                        }
35
+                        val phoneNumberList = SystemUtil.getPhoneNumber(context)
36
+                        //是否违规
37
+                        var sendFlag=false
38
+                        if (phoneNumberList.size>0){
39
+                            spUtils.saveJson(Const.SIMPHONENUM,phoneNumberList)
40
+                            if (phoneList.size==phoneNumberList.size){
41
+                                phoneList.forEach {
42
+                                    //有一个不包含就是违规
43
+                                    if (!phoneNumberList.contains(it)){
44
+                                        sendFlag=true
45
+                                    }
46
+                                }
47
+                            }else{
48
+                                sendFlag=true
49
+                            }
50
+                        }
51
+                       if (sendFlag){
52
+                           UIEvent(Const.SIMINSTALL).post()
53
+                       }
23
                     }
54
                     }
24
 
55
 
25
                     TelephonyManager.SIM_STATE_UNKNOWN, TelephonyManager.SIM_STATE_ABSENT,
56
                     TelephonyManager.SIM_STATE_UNKNOWN, TelephonyManager.SIM_STATE_ABSENT,

+ 0
- 60
app/src/main/java/com/xhly/manageapp/ui/login/activity/LoginActivity.kt View File

353
             Const.CODE2007.toString() -> {
353
             Const.CODE2007.toString() -> {
354
                 postLogPush(7)
354
                 postLogPush(7)
355
             }
355
             }
356
-
357
-            Const.SDINSTALL -> {
358
-                val data = LogdOperateBean()
359
-                ManageApplication.getDeviceInfo()?.let {
360
-                    data.sn = it
361
-                }
362
-                data.comm = EventLog.SDEMOUNTEDVENTSTRING
363
-                data.doEvent = EventLog.SDEMOUNTEDVENT
364
-                viewModel.eventLog(data)
365
-            }
366
-
367
-            Const.SDUNINSTALL -> {
368
-                val data = LogdOperateBean()
369
-                ManageApplication.getDeviceInfo()?.let {
370
-                    data.sn = it
371
-                }
372
-                data.comm =EventLog.SDEJECTEVENTSTRING
373
-                data.doEvent = EventLog.SDEJECTEVENT
374
-                viewModel.eventLog(data)
375
-            }
376
-
377
-            Const.SIMINSTALL -> {
378
-                val data = LogdOperateBean()
379
-                ManageApplication.getDeviceInfo()?.let {
380
-                    data.sn = it
381
-                }
382
-                data.comm = EventLog.SIMEVENTSTRING
383
-                data.doEvent = EventLog.SIMEVENT
384
-                viewModel.eventLog(data)
385
-            }
386
-
387
-            Const.BLUETOOTHOPEN -> {
388
-                val data = LogdOperateBean()
389
-                ManageApplication.getDeviceInfo()?.let {
390
-                    data.sn = it
391
-                }
392
-                data.comm = EventLog.BLUETOOHEVENTSTRING
393
-                data.doEvent = EventLog.BLUETOOHEVENT
394
-                viewModel.eventLog(data)
395
-            }
396
-
397
-            Const.USB_CONNECTED -> {
398
-                val data = LogdOperateBean()
399
-                ManageApplication.getDeviceInfo()?.let {
400
-                    data.sn = it
401
-                }
402
-                data.comm = EventLog.USBCONNECTEVENTSTRING
403
-                data.doEvent = EventLog.USBCONNECTEVENT
404
-                viewModel.eventLog(data)
405
-            }
406
-
407
-            Const.USB_NOCONNECTED -> {
408
-                val data = LogdOperateBean()
409
-                ManageApplication.getDeviceInfo()?.let {
410
-                    data.sn = it
411
-                }
412
-                data.comm = EventLog.USBDISCONNECTEVENTSTRING
413
-                data.doEvent = EventLog.USBDISCONNECTEVENT
414
-                viewModel.eventLog(data)
415
-            }
416
         }
356
         }
417
 
357
 
418
     }
358
     }

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

51
 import com.kongzue.dialogx.dialogs.CustomDialog
51
 import com.kongzue.dialogx.dialogs.CustomDialog
52
 import com.kongzue.dialogx.interfaces.OnBindView
52
 import com.kongzue.dialogx.interfaces.OnBindView
53
 import com.tbruyelle.rxpermissions2.RxPermissions
53
 import com.tbruyelle.rxpermissions2.RxPermissions
54
+import com.tencent.bugly.crashreport.CrashReport
54
 import com.xhkjedu.manageapp.R
55
 import com.xhkjedu.manageapp.R
55
 import com.xhkjedu.manageapp.databinding.ActivityMainBinding
56
 import com.xhkjedu.manageapp.databinding.ActivityMainBinding
56
 import com.xhly.corelib.Const
57
 import com.xhly.corelib.Const
168
             return
169
             return
169
         } else {
170
         } else {
170
             userBean = json as UserBean
171
             userBean = json as UserBean
172
+            userBean?.let {
173
+                CrashReport.setUserId(it.userid.toString())
174
+            }
171
         }
175
         }
172
         //自动同时一次时间
176
         //自动同时一次时间
173
         viewModel.postSyncTime()
177
         viewModel.postSyncTime()
1380
                 }
1384
                 }
1381
                 data.comm = EventLog.SDEMOUNTEDVENTSTRING
1385
                 data.comm = EventLog.SDEMOUNTEDVENTSTRING
1382
                 data.doEvent = EventLog.SDEMOUNTEDVENT
1386
                 data.doEvent = EventLog.SDEMOUNTEDVENT
1383
-                viewModel.eventLog(data)
1387
+                postEventLog(data)
1384
             }
1388
             }
1385
 
1389
 
1386
             Const.SDUNINSTALL -> {
1390
             Const.SDUNINSTALL -> {
1390
                 }
1394
                 }
1391
                 data.comm = EventLog.SDEJECTEVENTSTRING
1395
                 data.comm = EventLog.SDEJECTEVENTSTRING
1392
                 data.doEvent = EventLog.SDEJECTEVENT
1396
                 data.doEvent = EventLog.SDEJECTEVENT
1393
-                viewModel.eventLog(data)
1397
+                postEventLog(data)
1394
             }
1398
             }
1395
 
1399
 
1396
             Const.SIMINSTALL -> {
1400
             Const.SIMINSTALL -> {
1410
                 }
1414
                 }
1411
                 data.comm = EventLog.BLUETOOHEVENTSTRING
1415
                 data.comm = EventLog.BLUETOOHEVENTSTRING
1412
                 data.doEvent = EventLog.BLUETOOHEVENT
1416
                 data.doEvent = EventLog.BLUETOOHEVENT
1413
-                viewModel.eventLog(data)
1417
+                postEventLog(data)
1414
             }
1418
             }
1415
 
1419
 
1416
             Const.USB_CONNECTED -> {
1420
             Const.USB_CONNECTED -> {
1420
                 }
1424
                 }
1421
                 data.comm = EventLog.USBCONNECTEVENTSTRING
1425
                 data.comm = EventLog.USBCONNECTEVENTSTRING
1422
                 data.doEvent = EventLog.USBCONNECTEVENT
1426
                 data.doEvent = EventLog.USBCONNECTEVENT
1423
-                viewModel.eventLog(data)
1427
+                postEventLog(data)
1424
             }
1428
             }
1425
 
1429
 
1426
             Const.USB_NOCONNECTED -> {
1430
             Const.USB_NOCONNECTED -> {
1430
                 }
1434
                 }
1431
                 data.comm = EventLog.USBDISCONNECTEVENTSTRING
1435
                 data.comm = EventLog.USBDISCONNECTEVENTSTRING
1432
                 data.doEvent = EventLog.USBDISCONNECTEVENT
1436
                 data.doEvent = EventLog.USBDISCONNECTEVENT
1433
-                viewModel.eventLog(data)
1437
+                postEventLog(data)
1434
             }
1438
             }
1435
 
1439
 
1436
             Const.ACCOUNTLOGINOUT -> {
1440
             Const.ACCOUNTLOGINOUT -> {
1493
         }
1497
         }
1494
     }
1498
     }
1495
 
1499
 
1500
+    private fun postEventLog(data:LogdOperateBean){
1501
+       try {
1502
+           var sendFlag=true
1503
+           val strategyBean =
1504
+               spUtils.getFromJson(Const.STRATEGYBEANKEY, StrategyBean::class.java) as StrategyBean
1505
+           when(data.doEvent){
1506
+               EventLog.BLUETOOHEVENT->{
1507
+                   //判断蓝牙事件是否违规
1508
+                   val filter = strategyBean.padDevices?.filter { it.pdtype == Const.DEVICETYPE2 }
1509
+                   if (filter!=null){
1510
+                       if (filter[0].enabled==1){
1511
+                        sendFlag=false
1512
+                       }
1513
+                   }
1514
+               }
1515
+               EventLog.USBCONNECTEVENT,EventLog.USBDISCONNECTEVENT->{
1516
+                   //判断USB事件是否违规
1517
+                   val filter = strategyBean.padDevices?.filter { it.pdtype == Const.DEVICETYPE3 }
1518
+                   if (filter!=null){
1519
+                       if (filter[0].enabled==1){
1520
+                           sendFlag=false
1521
+                       }
1522
+                   }
1523
+               }
1524
+               EventLog.SDEMOUNTEDVENT,EventLog.SDEJECTEVENT->{
1525
+                   //判断sd卡事件事件是否违规
1526
+                   val filter = strategyBean.padDevices?.filter { it.pdtype == Const.DEVICETYPE9 }
1527
+                   if (filter!=null){
1528
+                       if (filter[0].enabled==1){
1529
+                           sendFlag=false
1530
+                       }
1531
+                   }
1532
+               }
1533
+           }
1534
+           if (sendFlag){
1535
+               viewModel.eventLog(data)
1536
+           }
1537
+       }catch (e:Exception){
1538
+           LogShow("问题是"+e.toString())
1539
+       }
1540
+    }
1541
+
1496
     /**
1542
     /**
1497
      * 系统级别的通知
1543
      * 系统级别的通知
1498
      */
1544
      */

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

68
 
68
 
69
     //存储区域码,存在则在弹窗出现时显示
69
     //存储区域码,存在则在弹窗出现时显示
70
     const val REGIONCODEKEY="REGIONCODEKEY"
70
     const val REGIONCODEKEY="REGIONCODEKEY"
71
+
72
+    //存储SIM卡号码
73
+    const val SIMPHONENUM= "SIMPHONENUM"
74
+
71
     //接口地址 正式地址mc.xhkjedu.com测试地址mcapitest.xhkjedu.com
75
     //接口地址 正式地址mc.xhkjedu.com测试地址mcapitest.xhkjedu.com
72
 
76
 
73
     const val BASEURL="mcapitest.xhkjedu.com"
77
     const val BASEURL="mcapitest.xhkjedu.com"

+ 0
- 71
corelib/src/main/java/com/xhly/corelib/utils/PhoneInfoUtils.java View File

1
-package com.xhly.corelib.utils;
2
-import android.Manifest;
3
-import android.annotation.SuppressLint;
4
-import android.content.Context;
5
-import android.content.pm.PackageManager;
6
-import android.telephony.TelephonyManager;
7
-import androidx.core.app.ActivityCompat;
8
-
9
-
10
-/**
11
- * Created by WangJinyong on 2018/3/31.
12
- * 获取SIM卡信息和手机号码
13
- */
14
-
15
-public class PhoneInfoUtils {
16
-
17
-    private static String TAG = "PhoneInfoUtils";
18
-    private TelephonyManager telephonyManager;
19
-    //移动运营商编号
20
-    private String NetworkOperator;
21
-    private Context context;
22
-
23
-    public PhoneInfoUtils(Context context) {
24
-        this.context = context;
25
-        telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
26
-    }
27
-
28
-    //获取sim卡iccid
29
-    public String getIccid() {
30
-        String iccid = "N/A";
31
-        iccid = telephonyManager.getSimSerialNumber();
32
-        return iccid;
33
-    }
34
-
35
-    //获取电话号码
36
-    @SuppressLint("MissingPermission")
37
-    public String getNativePhoneNumber(Context context) {
38
-        String nativePhoneNumber = "N/A";
39
-        nativePhoneNumber = telephonyManager.getLine1Number();
40
-        return nativePhoneNumber;
41
-    }
42
-
43
-    //获取手机服务商信息
44
-    public String getProvidersName() {
45
-        String providersName = "N/A";
46
-        NetworkOperator = telephonyManager.getNetworkOperator();
47
-        //IMSI号前面3位460是国家,紧接着后面2位00 02是中国移动,01是中国联通,03是中国电信。
48
-//        Flog.d(TAG,"NetworkOperator=" + NetworkOperator);
49
-        if (NetworkOperator.equals("46000") || NetworkOperator.equals("46002")) {
50
-            providersName = "中国移动";//中国移动
51
-        } else if (NetworkOperator.equals("46001")) {
52
-            providersName = "中国联通";//中国联通
53
-        } else if (NetworkOperator.equals("46003")) {
54
-            providersName = "中国电信";//中国电信
55
-        }
56
-        return providersName;
57
-    }
58
-
59
-    @SuppressLint("MissingPermission")
60
-    public  String getPhoneInfo(Context context) {
61
-        TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
62
-        StringBuffer sb = new StringBuffer();
63
-        sb.append("\nLine1Number = " + tm.getLine1Number());
64
-        sb.append("\nNetworkOperator = " + tm.getNetworkOperator());//移动运营商编号
65
-        sb.append("\nNetworkOperatorName = " + tm.getNetworkOperatorName());//移动运营商名称
66
-        sb.append("\nSimCountryIso = " + tm.getSimCountryIso());
67
-        sb.append("\nSimOperator = " + tm.getSimOperator());
68
-        sb.append("\nSimOperatorName = " + tm.getSimOperatorName());
69
-        return sb.toString();
70
-    }
71
-}

Loading…
Cancel
Save