Android 11应用无法获取SYSTEM_ALERT_WINDOW权限,设置中无该应用
Android 11(API 30)悬浮窗权限设置不显示应用问题解决
关键确认
“在其他应用上层显示”确实是授予SYSTEM_ALERT_WINDOW权限的正确入口,你遇到的问题是因为Android 11对该权限的显示规则做了调整,大概率是遗漏了以下步骤:
排查&解决步骤
- 必须主动发起权限申请:Android 11开始,仅在Manifest中声明权限不会让应用出现在权限列表里,只有通过代码主动请求过该权限的应用才会被展示。即使用户拒绝了申请,应用也会出现在设置页中。
- 修正权限跳转Intent:跳转设置页时必须指定当前应用的包名,否则只会进入列表页却找不到你的应用。正确代码示例:
if (!Settings.canDrawOverlays(context)) { Intent intent = new Intent( Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + context.getPackageName()) ); startActivityForResult(intent, 1001); }if (!Settings.canDrawOverlays(context)) { val intent = Intent( Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + context.packageName) ) startActivityForResult(intent, 1001) } - 检查Manifest配置细节:确认
targetSdkVersion设置为30及以上,同时核对权限名称拼写为android.permission.SYSTEM_ALERT_WINDOW(你提到的TYPE_APLICATION_OVERLAY是笔误,正确应为TYPE_APPLICATION_OVERLAY)。 - 重装应用清理缓存:旧的应用缓存可能导致设置页不刷新,卸载应用后清理残留数据,重新安装再测试权限申请流程。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

