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,18 +8,49 @@ import android.telephony.TelephonyManager
8 8
 import com.xhly.corelib.Const
9 9
 import com.xhly.corelib.eventbus.UIEvent
10 10
 import com.xhly.corelib.utils.LogShow
11
+import com.xhly.corelib.utils.SharedPreferencesUtils
12
+import com.xhly.corelib.utils.SystemUtil
11 13
 
12 14
 class SimStateReceive : BroadcastReceiver() {
13 15
     override fun onReceive(context: Context, intent: Intent) {
14
-        println("sim state changed")
15 16
         try {
17
+            val spUtils by lazy { SharedPreferencesUtils.getInstance(context) }
16 18
             if (intent.action == ACTION_SIM_STATE_CHANGED) {
17 19
                 val tm = context.getSystemService(Service.TELEPHONY_SERVICE) as TelephonyManager
18 20
                 val state = tm.simState
19 21
                 when (state) {
20 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 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,66 +353,6 @@ class LoginActivity : BaseActivity<LoginViewModel, ActivityLoginBinding>() {
353 353
             Const.CODE2007.toString() -> {
354 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,6 +51,7 @@ import com.hjq.toast.Toaster
51 51
 import com.kongzue.dialogx.dialogs.CustomDialog
52 52
 import com.kongzue.dialogx.interfaces.OnBindView
53 53
 import com.tbruyelle.rxpermissions2.RxPermissions
54
+import com.tencent.bugly.crashreport.CrashReport
54 55
 import com.xhkjedu.manageapp.R
55 56
 import com.xhkjedu.manageapp.databinding.ActivityMainBinding
56 57
 import com.xhly.corelib.Const
@@ -168,6 +169,9 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(),Download
168 169
             return
169 170
         } else {
170 171
             userBean = json as UserBean
172
+            userBean?.let {
173
+                CrashReport.setUserId(it.userid.toString())
174
+            }
171 175
         }
172 176
         //自动同时一次时间
173 177
         viewModel.postSyncTime()
@@ -1380,7 +1384,7 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(),Download
1380 1384
                 }
1381 1385
                 data.comm = EventLog.SDEMOUNTEDVENTSTRING
1382 1386
                 data.doEvent = EventLog.SDEMOUNTEDVENT
1383
-                viewModel.eventLog(data)
1387
+                postEventLog(data)
1384 1388
             }
1385 1389
 
1386 1390
             Const.SDUNINSTALL -> {
@@ -1390,7 +1394,7 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(),Download
1390 1394
                 }
1391 1395
                 data.comm = EventLog.SDEJECTEVENTSTRING
1392 1396
                 data.doEvent = EventLog.SDEJECTEVENT
1393
-                viewModel.eventLog(data)
1397
+                postEventLog(data)
1394 1398
             }
1395 1399
 
1396 1400
             Const.SIMINSTALL -> {
@@ -1410,7 +1414,7 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(),Download
1410 1414
                 }
1411 1415
                 data.comm = EventLog.BLUETOOHEVENTSTRING
1412 1416
                 data.doEvent = EventLog.BLUETOOHEVENT
1413
-                viewModel.eventLog(data)
1417
+                postEventLog(data)
1414 1418
             }
1415 1419
 
1416 1420
             Const.USB_CONNECTED -> {
@@ -1420,7 +1424,7 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(),Download
1420 1424
                 }
1421 1425
                 data.comm = EventLog.USBCONNECTEVENTSTRING
1422 1426
                 data.doEvent = EventLog.USBCONNECTEVENT
1423
-                viewModel.eventLog(data)
1427
+                postEventLog(data)
1424 1428
             }
1425 1429
 
1426 1430
             Const.USB_NOCONNECTED -> {
@@ -1430,7 +1434,7 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(),Download
1430 1434
                 }
1431 1435
                 data.comm = EventLog.USBDISCONNECTEVENTSTRING
1432 1436
                 data.doEvent = EventLog.USBDISCONNECTEVENT
1433
-                viewModel.eventLog(data)
1437
+                postEventLog(data)
1434 1438
             }
1435 1439
 
1436 1440
             Const.ACCOUNTLOGINOUT -> {
@@ -1493,6 +1497,48 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(),Download
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,6 +68,10 @@ object Const {
68 68
 
69 69
     //存储区域码,存在则在弹窗出现时显示
70 70
     const val REGIONCODEKEY="REGIONCODEKEY"
71
+
72
+    //存储SIM卡号码
73
+    const val SIMPHONENUM= "SIMPHONENUM"
74
+
71 75
     //接口地址 正式地址mc.xhkjedu.com测试地址mcapitest.xhkjedu.com
72 76
 
73 77
     const val BASEURL="mcapitest.xhkjedu.com"

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

@@ -1,71 +0,0 @@
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