打开特定应用程序叠加权限设置(Android 11)

Ali*_*aXX 5 settings android android-permissions

我使用此代码片段打开我的应用程序的覆盖权限设置页面:

startActivityForResult(
    Intent(
        Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
        Uri.parse("package:$packageName")
    ),
    REQUEST_OVERDRAW_PERMISSION_CODE
)
Run Code Online (Sandbox Code Playgroud)

它在 11 以下的 Android 上正确打开我的应用程序的相关设置,但在 Android 11 上它会打开覆盖权限的常规设置,并且不会打开我的应用程序(用户必须查找它)。有没有办法直接打开特定应用的权限?

在此输入图像描述

Mau*_*ani 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