“覆盖其他应用程序”更改侦听器?

San*_*rab 6 android

在我的应用程序中,我需要知道用户何时授予“在其他应用程序上绘制”权限。有办法知道吗?由于我只能将用户发送到设置页面以使用 Settings.ACTION_MANAGE_OVERLAY_PERMISSION 意图操作来启用它,因此我期望系统广播或类似的内容。

Mat*_*ini 2

不幸的是,没有系统广播,但您可以使用canDrawOverlays (Context context)

应用程序可以使用此方法来检查当前是否允许在其他应用程序之上进行绘制。为了允许这样做,应用程序必须首先在其清单中声明 SYSTEM_ALERT_WINDOW 权限。如果当前不允许,它可以提示用户通过管理 UI 发送具有操作 ACTION_MANAGE_OVERLAY_PERMISSION 的 Intent 来授予其此功能。

您可以直接在您的onActivityResult

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_CODE) {
        if (Settings.canDrawOverlays(this)) {
            //Permission is granted
        }
    }
}
Run Code Online (Sandbox Code Playgroud)