From fdab66abb6abcb2cda6e44f6ea8feebe6c7f122b Mon Sep 17 00:00:00 2001 From: yitao_hello <2714330342@qq.com> Date: Sat, 25 Dec 2021 09:36:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E6=82=AC=E6=B5=AE=E7=AA=97?= =?UTF-8?q?=E6=9D=83=E9=99=90=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erban/ui/setting/bean/PermissionEntity.kt | 6 -- .../com/yizhuan/erban/utils/PermissionUtil.kt | 65 +------------------ 2 files changed, 3 insertions(+), 68 deletions(-) diff --git a/app/src/main/java/com/yizhuan/erban/ui/setting/bean/PermissionEntity.kt b/app/src/main/java/com/yizhuan/erban/ui/setting/bean/PermissionEntity.kt index 6bf5849bc..19358af4c 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/setting/bean/PermissionEntity.kt +++ b/app/src/main/java/com/yizhuan/erban/ui/setting/bean/PermissionEntity.kt @@ -38,12 +38,6 @@ enum class PermissionEntity( Manifest.permission.GET_ACCOUNTS ) ), - WINDOW( - "悬浮窗", - "悬浮窗口显示在其他应用上层", - R.drawable.icon_permission_common, - arrayOf(Manifest.permission.SYSTEM_ALERT_WINDOW) - ), MICROPHONE( "录音", "录制音频", diff --git a/app/src/main/java/com/yizhuan/erban/utils/PermissionUtil.kt b/app/src/main/java/com/yizhuan/erban/utils/PermissionUtil.kt index 9b411fe95..8f2196cc5 100644 --- a/app/src/main/java/com/yizhuan/erban/utils/PermissionUtil.kt +++ b/app/src/main/java/com/yizhuan/erban/utils/PermissionUtil.kt @@ -1,15 +1,11 @@ package com.yizhuan.erban.utils -import android.Manifest -import android.app.AppOpsManager import android.content.ComponentName import android.content.Context import android.content.Intent import android.content.pm.PackageManager import android.net.Uri -import android.os.Binder import android.os.Build -import android.provider.Settings import com.microquation.linkedme.android.v4.ContextCompatLKMe import com.yizhuan.erban.BuildConfig import com.yizhuan.erban.ui.setting.bean.PermissionEntity @@ -31,12 +27,8 @@ class PermissionUtil { it } else { it.filter { s -> - val granted = ContextCompatLKMe.checkSelfPermission(context, s) == PackageManager.PERMISSION_GRANTED - if (s == Manifest.permission.SYSTEM_ALERT_WINDOW) { - granted && checkFloatPermission(context) - } else { - granted - } + ContextCompatLKMe.checkSelfPermission(context, s) == + PackageManager.PERMISSION_GRANTED } } } @@ -59,58 +51,7 @@ class PermissionUtil { else -> toCommonPermission(context) } } - - - //悬浮窗权限判断 - private fun checkFloatPermission(context: Context): Boolean { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) - return true - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { - try { - val contextClazz = Context::class.java - val declaredField = contextClazz.getDeclaredField("APP_OPS_SERVICE") - declaredField.isAccessible = true - val filedValue = declaredField.get(contextClazz) - if (filedValue !is String) { - return false - } - val methodValue = contextClazz.getMethod("getSystemService", String::class.java) - .invoke(context, filedValue) - val osManagerClazz = Class.forName("android.app.AppOpsManager") - val filedMode = osManagerClazz?.getDeclaredField("MODE_ALLOWED") - filedMode?.isAccessible = true - val checkOpMethod = osManagerClazz.getMethod( - "checkOp", - Integer.TYPE, - Integer.TYPE, - String::class.java - ) - val result = checkOpMethod?.invoke( - methodValue, - 24, - Binder.getCallingUid(), - context.packageName - ) - return result == filedMode?.getInt(osManagerClazz) - } catch (e: Exception) { - return false - } - } else { - return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - val appOpsMgr = - context.getSystemService(Context.APP_OPS_SERVICE) as AppOpsManager - val mode = appOpsMgr?.checkOpNoThrow( - "android:system_alert_window", android.os.Process.myUid(), context - .packageName - ) - mode == AppOpsManager.MODE_ALLOWED || mode == AppOpsManager.MODE_IGNORED - } else { - Settings.canDrawOverlays(context) - } - } - } - - + private fun toHuaWeiPermission(context: Context) { try { val intent = Intent()