1

我对在 Android 中获得一个包的活动系统警报窗口权限感到有点困惑。我正在使用下面的代码,但即使我们禁止该应用程序从“在其他应用程序上绘制”,此代码也会返回 0。任何指针?

我的用例是进行检查,如果system_alert_window permission找到任何应​​用程序,我们需要告诉用户更改该应用程序的权限以继续进行。

packageManager.checkPermission("android.permission.SYSTEM_ALERT_WINDOW", info.packageName)

4

1 回答 1

0

我创建了这个方法来检查是否授予权限

public static boolean checkDrawOverlayPermission(Context context) {
        /** check if we already  have permission to draw over other apps */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            return Settings.canDrawOverlays(context);
        }
        return true;
    }

之后,如果您想将用户引导到他可以启用该选项的地方,您可以:

Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
                    Uri.parse("package:" + activity.getPackageName()));
于 2018-12-26T11:32:51.060 回答