瀏覽代碼

1.sd卡监听添加scheme

master
wangwanlei 11 月之前
父節點
當前提交
f15b0d35df

+ 4
- 2
app/src/main/AndroidManifest.xml 查看文件

22
     <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
22
     <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
23
     <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
23
     <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
24
 
24
 
25
-    <uses-permission android:name="android.permission.BLUETOOTH"/>
25
+    <uses-permission android:name="android.permission.BLUETOOTH" />
26
     <uses-permission android:name="android.permission.LOCAL_MAC_ADDRESS" />
26
     <uses-permission android:name="android.permission.LOCAL_MAC_ADDRESS" />
27
     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
27
     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
28
 
28
 
30
     <application
30
     <application
31
         android:name=".ManageApplication"
31
         android:name=".ManageApplication"
32
         android:allowBackup="true"
32
         android:allowBackup="true"
33
+        android:appComponentFactory="androidx.core.app.CoreComponentFactory"
33
         android:dataExtractionRules="@xml/data_extraction_rules"
34
         android:dataExtractionRules="@xml/data_extraction_rules"
34
         android:fullBackupContent="@xml/backup_rules"
35
         android:fullBackupContent="@xml/backup_rules"
35
         android:icon="@mipmap/ic_launcher"
36
         android:icon="@mipmap/ic_launcher"
36
         android:label="@string/app_name"
37
         android:label="@string/app_name"
37
         android:networkSecurityConfig="@xml/network_security_config"
38
         android:networkSecurityConfig="@xml/network_security_config"
38
         android:roundIcon="@mipmap/ic_launcher_round"
39
         android:roundIcon="@mipmap/ic_launcher_round"
39
-        android:appComponentFactory="androidx.core.app.CoreComponentFactory"
40
         android:supportsRtl="true"
40
         android:supportsRtl="true"
41
         android:theme="@style/MyStyle"
41
         android:theme="@style/MyStyle"
42
         tools:targetApi="31">
42
         tools:targetApi="31">
112
                 <action android:name="android.intent.action.MEDIA_MOUNTED" />
112
                 <action android:name="android.intent.action.MEDIA_MOUNTED" />
113
                 <action android:name="android.intent.action.MEDIA_EJECT" />
113
                 <action android:name="android.intent.action.MEDIA_EJECT" />
114
                 <action android:name="android.intent.action.MEDIA_UNMOUNTED" />
114
                 <action android:name="android.intent.action.MEDIA_UNMOUNTED" />
115
+
116
+                <data android:scheme="file" />
115
             </intent-filter>
117
             </intent-filter>
116
         </receiver>
118
         </receiver>
117
         <!--     &lt;!&ndash;覆盖安装清理数据广播——————————————————————————————————————————————————————————&ndash;&gt;
119
         <!--     &lt;!&ndash;覆盖安装清理数据广播——————————————————————————————————————————————————————————&ndash;&gt;

+ 4
- 1
app/src/main/java/com/xhly/manageapp/broadcastreceiver/SDReceiver.kt 查看文件

3
 import android.content.BroadcastReceiver
3
 import android.content.BroadcastReceiver
4
 import android.content.Context
4
 import android.content.Context
5
 import android.content.Intent
5
 import android.content.Intent
6
+import com.xhly.corelib.utils.LogShow
6
 
7
 
7
 class SDReceiver: BroadcastReceiver() {
8
 class SDReceiver: BroadcastReceiver() {
8
     override fun onReceive(context: Context, intent: Intent) {
9
     override fun onReceive(context: Context, intent: Intent) {
15
              Intent.ACTION_MEDIA_MOUNTED->
16
              Intent.ACTION_MEDIA_MOUNTED->
16
              {
17
              {
17
                  //SD卡挂载成功
18
                  //SD卡挂载成功
19
+                 LogShow("sd卡已插入")
18
              }
20
              }
19
             Intent.ACTION_MEDIA_EJECT->{
21
             Intent.ACTION_MEDIA_EJECT->{
20
                 //SD卡拔出
22
                 //SD卡拔出
21
-
23
+                LogShow("sd卡已拔出")
22
             }
24
             }
23
             Intent.ACTION_MEDIA_UNMOUNTED->{
25
             Intent.ACTION_MEDIA_UNMOUNTED->{
24
                 //SD卡卸载成功
26
                 //SD卡卸载成功
27
+                LogShow("sd卡已卸载")
25
             }
28
             }
26
         }
29
         }
27
     }
30
     }

+ 23
- 8
app/src/main/java/com/xhly/manageapp/ui/main/activity/MainActivity.kt 查看文件

4
 import android.Manifest
4
 import android.Manifest
5
 import android.annotation.SuppressLint
5
 import android.annotation.SuppressLint
6
 import android.app.ActivityManager
6
 import android.app.ActivityManager
7
-import android.app.usage.UsageEvents
8
-import android.app.usage.UsageStatsManager
9
 import android.content.Context
7
 import android.content.Context
10
 import android.content.Intent
8
 import android.content.Intent
11
 import android.content.IntentFilter
9
 import android.content.IntentFilter
30
 import com.xhly.corelib.utils.CustomOSUtils
28
 import com.xhly.corelib.utils.CustomOSUtils
31
 import com.xhly.corelib.utils.LogShow
29
 import com.xhly.corelib.utils.LogShow
32
 import com.xhly.corelib.utils.PhoneInfoUtils
30
 import com.xhly.corelib.utils.PhoneInfoUtils
33
-import com.xhly.corelib.utils.toFormat
34
 import com.xhly.manageapp.AppAdapter
31
 import com.xhly.manageapp.AppAdapter
35
 import com.xhly.manageapp.R
32
 import com.xhly.manageapp.R
36
 import com.xhly.manageapp.bean.strategy.StrategyBean
33
 import com.xhly.manageapp.bean.strategy.StrategyBean
37
 import com.xhly.manageapp.broadcastreceiver.AppInstallReceiver
34
 import com.xhly.manageapp.broadcastreceiver.AppInstallReceiver
35
+import com.xhly.manageapp.broadcastreceiver.SDReceiver
38
 import com.xhly.manageapp.databinding.ActivityMainBinding
36
 import com.xhly.manageapp.databinding.ActivityMainBinding
39
 import com.xhly.manageapp.service.ManageAccessibilityService
37
 import com.xhly.manageapp.service.ManageAccessibilityService
40
 import com.xhly.manageapp.service.websocket.AppSocketService
38
 import com.xhly.manageapp.service.websocket.AppSocketService
43
 import com.xhly.manageapp.ui.main.viewmodel.MainViewModel
41
 import com.xhly.manageapp.ui.main.viewmodel.MainViewModel
44
 import com.xhly.manageapp.utils.StrategyUtils
42
 import com.xhly.manageapp.utils.StrategyUtils
45
 import com.xhly.manageapp.workmanager.TimingWorker
43
 import com.xhly.manageapp.workmanager.TimingWorker
46
-import java.util.Calendar
47
 import java.util.concurrent.TimeUnit
44
 import java.util.concurrent.TimeUnit
48
 
45
 
49
 
46
 
52
 
49
 
53
     /*private var csdkManager = CSDKManager(this)*/
50
     /*private var csdkManager = CSDKManager(this)*/
54
     private var mMyInstallReceiver: AppInstallReceiver? = null
51
     private var mMyInstallReceiver: AppInstallReceiver? = null
52
+    private var mySDReceiver: SDReceiver? = null
55
     private var dataList: ArrayList<AppInfo> = arrayListOf()
53
     private var dataList: ArrayList<AppInfo> = arrayListOf()
56
     override fun getBinding() = ActivityMainBinding.inflate(layoutInflater)
54
     override fun getBinding() = ActivityMainBinding.inflate(layoutInflater)
57
 
55
 
72
         mBinding.resetbtn.setOnClickListener {
70
         mBinding.resetbtn.setOnClickListener {
73
             UIEvent("2005").post()
71
             UIEvent("2005").post()
74
         }
72
         }
75
-        registerAppInstallReceiver()/*
73
+        registerAppInstallReceiver()
74
+       // registerSDReceiver()
75
+        /*
76
          使用情况权限
76
          使用情况权限
77
          val permissionIntent = Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS)
77
          val permissionIntent = Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS)
78
           startActivity(permissionIntent)*/
78
           startActivity(permissionIntent)*/
102
             //如果密码一致,则解锁
102
             //如果密码一致,则解锁
103
             spUtils.setParam(Const.DISABLEPAD, false)
103
             spUtils.setParam(Const.DISABLEPAD, false)
104
             useStrategy()
104
             useStrategy()
105
-            if (mBinding.mainLlayout.visibility == View.GONE){
105
+            if (mBinding.mainLlayout.visibility == View.GONE) {
106
                 Toast("当前不在可用时间。")
106
                 Toast("当前不在可用时间。")
107
             }
107
             }
108
         }
108
         }
138
                 //获得是否在使用时间范围
138
                 //获得是否在使用时间范围
139
                 block = StrategyUtils.getAppTimeStrategy(bean)
139
                 block = StrategyUtils.getAppTimeStrategy(bean)
140
             }
140
             }
141
-            if (Const.isDebug){
141
+            if (Const.isDebug) {
142
                 //测试状态不锁定
142
                 //测试状态不锁定
143
-                block=false
143
+                block = false
144
             }
144
             }
145
             val param = spUtils.getParam(Const.DISABLEPAD, false) as Boolean
145
             val param = spUtils.getParam(Const.DISABLEPAD, false) as Boolean
146
             if (param || block) {
146
             if (param || block) {
263
     }
263
     }
264
 
264
 
265
 
265
 
266
+    private fun registerSDReceiver() {
267
+        val intentFilter = IntentFilter();
268
+        intentFilter.addAction(Intent.ACTION_MEDIA_MOUNTED)
269
+        intentFilter.addAction(Intent.ACTION_MEDIA_EJECT)
270
+        intentFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED)
271
+        intentFilter.addDataScheme("file")
272
+        intentFilter.priority=1000
273
+        mySDReceiver = SDReceiver()
274
+        registerReceiver(mySDReceiver, intentFilter);
275
+    }
276
+
277
+
266
     private fun showEditDialog() {
278
     private fun showEditDialog() {
267
         CustomDialog.build()
279
         CustomDialog.build()
268
             .setCustomView(object : OnBindView<CustomDialog>(R.layout.layout_edit_dialog) {
280
             .setCustomView(object : OnBindView<CustomDialog>(R.layout.layout_edit_dialog) {
311
         mMyInstallReceiver?.let {
323
         mMyInstallReceiver?.let {
312
             unregisterReceiver(it)
324
             unregisterReceiver(it)
313
         }
325
         }
326
+        mySDReceiver?.let {
327
+            unregisterReceiver(it)
328
+        }
314
         LogShow("MainActivity被销毁")
329
         LogShow("MainActivity被销毁")
315
     }
330
     }
316
 
331
 

Loading…
取消
儲存