android - 如何检查将 Draw over other apps 设为 True 的应用程序?

标签 android system-alert-window

我对在 Android 中获取软件包的 Activity 系统警报窗口权限感到有些困惑。我正在使用下面的代码,但即使我们从“绘制其他应用程序”中禁止该应用程序,此代码也会返回 0。有任何指示吗?

我的用例是进行检查,如果发现任何具有 system_alert_window 权限 的应用程序,我们需要告诉用户更改该应用程序权限才能继续。

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

最佳答案

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

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()));

关于android - 如何检查将 Draw over other apps 设为 True 的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53930842/

相关文章:

android - 如何让用户使用我的应用程序播放视频?

Android 警报对话框 : TYPE_SYSTEM_ALERT

permissions - Android Wear 上请求权限

java - 检查API版本

android - 将 DrawerLayout 与 CoordinatorLayout 和 FAB 相结合

java - Android 电话.Sms.对话

android - 加载凭据时更新到 SDK 4.1.0 后 MapBox Android 应用程序崩溃

android - 避免为使用 SYSTEM_ALERT_WINDOW 的服务检测到屏幕覆盖

android - 全屏 TYPE_SYSTEM_ALERT [无状态和导航栏]