Quellcode durchsuchen

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

master
wangwanlei vor 10 Monaten
Ursprung
Commit
96994d1b2a

+ 30
- 32
app/src/main/java/com/xhly/manageapp/AppAdapter.kt Datei anzeigen

@@ -11,6 +11,7 @@ import android.widget.Toast
11 11
 import androidx.appcompat.content.res.AppCompatResources
12 12
 import androidx.recyclerview.widget.RecyclerView
13 13
 import com.hjq.toast.Toaster
14
+import com.xhly.corelib.Const
14 15
 import com.xhly.corelib.bean.AppInfo
15 16
 import com.xhly.corelib.utils.LogShow
16 17
 import com.xhly.manageapp.databinding.ItemAppBinding
@@ -27,42 +28,24 @@ class AppAdapter(var context: Context, var data: ArrayList<AppInfo>) :
27 28
     }
28 29
 
29 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 49
                 try {
67 50
                     var instance = Calendar.getInstance()
68 51
                     instance.set(Calendar.HOUR_OF_DAY, 11)
@@ -76,11 +59,26 @@ class AppAdapter(var context: Context, var data: ArrayList<AppInfo>) :
76 59
                     }
77 60
                 }catch (e:Exception){
78 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 83
     class AppViewHolder(binding: ItemAppBinding) : RecyclerView.ViewHolder(binding.root) {
86 84
         var mBinding = binding

+ 21
- 10
app/src/main/java/com/xhly/manageapp/ManageApplication.kt Datei anzeigen

@@ -1,8 +1,11 @@
1 1
 package com.xhly.manageapp
2 2
 
3 3
 
4
+import android.Manifest
4 5
 import android.app.csdk.CSDKManager
6
+import android.content.pm.PackageManager
5 7
 import android.os.Build
8
+import androidx.core.content.ContextCompat
6 9
 import androidx.multidex.MultiDexApplication
7 10
 import com.hjq.toast.Toaster
8 11
 import com.xhly.corelib.utils.ModelNameUtils
@@ -249,15 +252,23 @@ class ManageApplication : MultiDexApplication() {
249 252
             if (ModelNameUtils.IS_LianxX505f()) {
250 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,7 +305,7 @@ class ManageApplication : MultiDexApplication() {
294 305
          */
295 306
         fun enableWifiWhiteList(enable: Boolean) {
296 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 Datei anzeigen

@@ -1,6 +1,8 @@
1 1
 package com.xhly.manageapp.ui.login.activity
2 2
 
3 3
 import BaseActivity
4
+import android.Manifest
5
+import android.annotation.SuppressLint
4 6
 import android.content.pm.PackageManager
5 7
 import android.graphics.Color
6 8
 import android.os.Build
@@ -10,6 +12,7 @@ import android.widget.TextView
10 12
 import androidx.activity.addCallback
11 13
 import com.kongzue.dialogx.dialogs.CustomDialog
12 14
 import com.kongzue.dialogx.interfaces.OnBindView
15
+import com.tbruyelle.rxpermissions2.RxPermissions
13 16
 import com.xhly.corelib.Const
14 17
 import com.xhly.corelib.utils.GsonUtils
15 18
 import com.xhly.corelib.utils.SystemUtil
@@ -38,10 +41,17 @@ class LoginActivity : BaseActivity<LoginViewModel, ActivityLoginBinding>() {
38 41
        }
39 42
     }
40 43
 
44
+    @SuppressLint("CheckResult")
41 45
     override fun initView() {
42 46
         setSoftInput(mBinding.root)
43 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 56
         mBinding.codeLoginIv.setOnClickListener {
47 57
             showEditDialog()

Laden…
Abbrechen
Speichern