Browse Source

1.添加读取手机信息的动态权限

master
wangwanlei 10 months ago
parent
commit
96994d1b2a

+ 30
- 32
app/src/main/java/com/xhly/manageapp/AppAdapter.kt View File

11
 import androidx.appcompat.content.res.AppCompatResources
11
 import androidx.appcompat.content.res.AppCompatResources
12
 import androidx.recyclerview.widget.RecyclerView
12
 import androidx.recyclerview.widget.RecyclerView
13
 import com.hjq.toast.Toaster
13
 import com.hjq.toast.Toaster
14
+import com.xhly.corelib.Const
14
 import com.xhly.corelib.bean.AppInfo
15
 import com.xhly.corelib.bean.AppInfo
15
 import com.xhly.corelib.utils.LogShow
16
 import com.xhly.corelib.utils.LogShow
16
 import com.xhly.manageapp.databinding.ItemAppBinding
17
 import com.xhly.manageapp.databinding.ItemAppBinding
27
     }
28
     }
28
 
29
 
29
     override fun getItemCount(): Int {
30
     override fun getItemCount(): Int {
30
-        return data.size+2
31
+        return data.size
31
     }
32
     }
32
 
33
 
33
 
34
 
34
-    override fun onBindViewHolder(holder: AppViewHolder, position: Int) {
35
-        if (position==data.size){
36
-            AppCompatResources.getDrawable(context,R.drawable.icon_speed)
37
-                ?.let { holder.mBinding.itemCv.setImageDrawable(it) }
38
-            holder.mBinding.itemCv.setText(context.getString(R.string.speed))
39
-            holder.mBinding.itemCv.setOnClickListener {
40
-              try {
41
-                  val service : ActivityManager = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
42
-                  val runningAppProcesses = service.runningAppProcesses
43
-                  runningAppProcesses.forEach {process->
44
-                      LogShow("当前运行应用名称"+process.processName+"|||"+process?.importanceReasonComponent?.packageName)
45
-                      data.filter { it.packageName.equals(process.processName) }.forEach {
46
-                          ManageApplication.killApplicationProcess(it.packageName)
47
-                      }
48
-                  }
49
-                  Toaster.show("加速完成。")
50
-              }catch (e:Exception){
51
 
35
 
52
-              }
53
-            }
54
-        }else if (position==data.size+1){
55
-            AppCompatResources.getDrawable(context,R.drawable.icon_clear)
56
-                ?.let { holder.mBinding.itemCv.setImageDrawable(it) }
57
-            holder.mBinding.itemCv.setText(context.getString(R.string.clear))
58
-            holder.mBinding.itemCv.setOnClickListener {
59
 
36
 
60
-            }
61
-        }else{
62
-            val appInfo = data[position]
63
-            holder.mBinding.itemCv.setImageDrawable(appInfo.ico)
64
-            holder.mBinding.itemCv.setText(appInfo.name)
65
-            holder.mBinding.itemCv.setOnClickListener {
37
+    override fun onBindViewHolder(holder: AppViewHolder, position: Int) {
38
+        val appInfo = data[position]
39
+        holder.mBinding.itemCv.setImageDrawable(appInfo.ico)
40
+        holder.mBinding.itemCv.setText(appInfo.name)
41
+        holder.mBinding.itemCv.setOnClickListener {
42
+            if (appInfo.packageName.equals(Const.CUSTOMSPEEDAPP)){
43
+                clearMemory()
44
+            }else if (appInfo.packageName.equals(Const.CUSTOMCLEARAPP)){
45
+                Toaster.showLong("清理缓存")
46
+            }else if (appInfo.packageName.equals(Const.CUSTOMROTATIONAPP)){
47
+                Toaster.showLong("旋转木马")
48
+            }else{
66
                 try {
49
                 try {
67
                     var instance = Calendar.getInstance()
50
                     var instance = Calendar.getInstance()
68
                     instance.set(Calendar.HOUR_OF_DAY, 11)
51
                     instance.set(Calendar.HOUR_OF_DAY, 11)
76
                     }
59
                     }
77
                 }catch (e:Exception){
60
                 }catch (e:Exception){
78
                     LogShow("应用跳转问题是"+e.toString())
61
                     LogShow("应用跳转问题是"+e.toString())
79
-                }
62
+                }   
80
             }
63
             }
81
         }
64
         }
82
     }
65
     }
83
 
66
 
67
+    private fun clearMemory() {
68
+        try {
69
+            val service : ActivityManager = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
70
+            val runningAppProcesses = service.runningAppProcesses
71
+            runningAppProcesses.forEach {process->
72
+                LogShow("当前运行应用名称"+process.processName+"|||"+process?.importanceReasonComponent?.packageName)
73
+                data.filter { it.packageName.equals(process.processName) }.forEach {
74
+                    ManageApplication.killApplicationProcess(it.packageName)
75
+                }
76
+            }
77
+            Toaster.show("加速完成。")
78
+        }catch (e:Exception){
79
+
80
+        }
81
+    }
84
 
82
 
85
     class AppViewHolder(binding: ItemAppBinding) : RecyclerView.ViewHolder(binding.root) {
83
     class AppViewHolder(binding: ItemAppBinding) : RecyclerView.ViewHolder(binding.root) {
86
         var mBinding = binding
84
         var mBinding = binding

+ 21
- 10
app/src/main/java/com/xhly/manageapp/ManageApplication.kt View File

1
 package com.xhly.manageapp
1
 package com.xhly.manageapp
2
 
2
 
3
 
3
 
4
+import android.Manifest
4
 import android.app.csdk.CSDKManager
5
 import android.app.csdk.CSDKManager
6
+import android.content.pm.PackageManager
5
 import android.os.Build
7
 import android.os.Build
8
+import androidx.core.content.ContextCompat
6
 import androidx.multidex.MultiDexApplication
9
 import androidx.multidex.MultiDexApplication
7
 import com.hjq.toast.Toaster
10
 import com.hjq.toast.Toaster
8
 import com.xhly.corelib.utils.ModelNameUtils
11
 import com.xhly.corelib.utils.ModelNameUtils
249
             if (ModelNameUtils.IS_LianxX505f()) {
252
             if (ModelNameUtils.IS_LianxX505f()) {
250
                 return csdkManager?.getDeviceInfo(type)
253
                 return csdkManager?.getDeviceInfo(type)
251
             }
254
             }
252
-            val serial = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
253
-                Build.getSerial()
254
-            } else {
255
-                Build.SERIAL
256
-            }
257
-            return if (serial.isNullOrBlank()) {
258
-                ""
259
-            } else {
260
-                serial
255
+            try {
256
+                if (instance!=null&&ContextCompat.checkSelfPermission(instance!!.applicationContext,Manifest.permission.READ_PHONE_STATE)== PackageManager.PERMISSION_GRANTED){
257
+                    val serial = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
258
+                        Build.getSerial()
259
+                    } else {
260
+                        Build.SERIAL
261
+                    }
262
+                    return if (serial.isNullOrBlank()) {
263
+                        ""
264
+                    } else {
265
+                        serial
266
+                    }
267
+                }else{
268
+                    return ""
269
+                }
270
+            }catch (e:Exception){
271
+                return ""
261
             }
272
             }
262
         }
273
         }
263
 
274
 
294
          */
305
          */
295
         fun enableWifiWhiteList(enable: Boolean) {
306
         fun enableWifiWhiteList(enable: Boolean) {
296
             if (ModelNameUtils.IS_LianxX505f()) {
307
             if (ModelNameUtils.IS_LianxX505f()) {
297
-                csdkManager?.enableWifiWhiteList(enable)
308
+               // csdkManager?.enableWifiWhiteList(enable)
298
             }
309
             }
299
         }
310
         }
300
 
311
 

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

1
 package com.xhly.manageapp.ui.login.activity
1
 package com.xhly.manageapp.ui.login.activity
2
 
2
 
3
 import BaseActivity
3
 import BaseActivity
4
+import android.Manifest
5
+import android.annotation.SuppressLint
4
 import android.content.pm.PackageManager
6
 import android.content.pm.PackageManager
5
 import android.graphics.Color
7
 import android.graphics.Color
6
 import android.os.Build
8
 import android.os.Build
10
 import androidx.activity.addCallback
12
 import androidx.activity.addCallback
11
 import com.kongzue.dialogx.dialogs.CustomDialog
13
 import com.kongzue.dialogx.dialogs.CustomDialog
12
 import com.kongzue.dialogx.interfaces.OnBindView
14
 import com.kongzue.dialogx.interfaces.OnBindView
15
+import com.tbruyelle.rxpermissions2.RxPermissions
13
 import com.xhly.corelib.Const
16
 import com.xhly.corelib.Const
14
 import com.xhly.corelib.utils.GsonUtils
17
 import com.xhly.corelib.utils.GsonUtils
15
 import com.xhly.corelib.utils.SystemUtil
18
 import com.xhly.corelib.utils.SystemUtil
38
        }
41
        }
39
     }
42
     }
40
 
43
 
44
+    @SuppressLint("CheckResult")
41
     override fun initView() {
45
     override fun initView() {
42
         setSoftInput(mBinding.root)
46
         setSoftInput(mBinding.root)
43
         mBinding.loginBtn.setOnClickListener {
47
         mBinding.loginBtn.setOnClickListener {
44
-            login()
48
+            val rxPermissions = RxPermissions(this)
49
+            val request = rxPermissions.request(Manifest.permission.READ_PHONE_STATE)
50
+            request.subscribe({
51
+                login()
52
+            },{
53
+                login()
54
+            })
45
         }
55
         }
46
         mBinding.codeLoginIv.setOnClickListener {
56
         mBinding.codeLoginIv.setOnClickListener {
47
             showEditDialog()
57
             showEditDialog()

Loading…
Cancel
Save