打开特定应用程序的悬浮窗权限设置(Android 11)

5
我正在使用这个代码片段来打开我的应用程序的覆盖权限设置页面:
startActivityForResult(
    Intent(
        Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
        Uri.parse("package:$packageName")
    ),
    REQUEST_OVERDRAW_PERMISSION_CODE
)

它可以在 Android 11 以下的设备上正确打开我的应用程序相关设置,但在 Android 11 上,它会打开覆盖权限的通用设置,而不是打开我的应用程序(用户必须寻找它)。是否有解决方案可以直接打开特定应用程序的权限?

enter image description here

1个回答

11

自 Android 11 (API 30) 开始引入了一项行为更改:

从 Android 11 开始,ACTION_MANAGE_OVERLAY_PERMISSION 意图总是将用户带到顶级设置屏幕,在此屏幕上用户可以授予或撤销应用程序的 SYSTEM_ALERT_WINDOW 权限。意图中的任何 package: data 都会被忽略。

参考官方文档: https://developer.android.com/about/versions/11/privacy/permissions#manage_overlay


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接