Android的canDrawOverlays问题
创始人
2024-10-07 04:30:18
0

在Android中,当应用需要在其他应用或系统界面上方绘制悬浮窗或全局视图时,需要获得canDrawOverlays权限。然而,某些设备和Android版本可能会出现canDrawOverlays权限检查失效的问题,导致无法正确获取此权限。

为解决此问题,我们可以使用反射来访问canDrawOverlays权限标志位。下面是示例代码:

public static boolean checkCanDrawOverlays(Context context) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        AppOpsManager appOpsMgr = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
        int mode = appOpsMgr.checkOpNoThrow(AppOpsManager.OPSTR_SYSTEM_ALERT_WINDOW, android.os.Process.myUid(), context.getPackageName());
        return mode == AppOpsManager.MODE_ALLOWED;
    } else {
        return Settings.canDrawOverlays(context);
    }
}

在使用canDrawOverlays权限时,需要在AndroidManifest.xml中添加以下代码:


在应用运行时,可以使用以下代码请求此权限:

if (checkCanDrawOverlays(this)) {
    // 视图绘制 
} else {
    Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
            Uri.parse("package:" + getPackageName()));
    startActivityForResult(intent, PERMISSION_REQUEST_CODE);
}

其中,PERMISSION_REQUEST_CODE是自定义请求码。

通过以上方法,我们可以正确获取canDrawOverlays权限。

相关内容

热门资讯

复盘辅助挂!wepoker怎么... 复盘辅助挂!wepoker怎么发冤家牌(透视)微信小程序微乐安徽辅助苹果(都是真的有辅助器)-哔哩哔...
透视计算!拱趴大菠萝有什么挂(... 透视计算!拱趴大菠萝有什么挂(透视)微乐家乡小程序修改器(原来是真的辅助插件)-哔哩哔哩1、拱趴大菠...
据监测!wepokerplus... 据监测!wepokerplus到底是挂了吗(透视)微信小程序微乐辅助器贴吧(总是有辅助教程)-哔哩哔...
透视辅助!wepoker透视功... 透视辅助!wepoker透视功能下载(透视)微乐小程游戏破解器下载(好像存在有辅助工具)-哔哩哔哩1...
做出回应!wepoker能不能... 做出回应!wepoker能不能透视(透视)微乐辅助软件购买平台(一贯真的有辅助挂)-哔哩哔哩1、每一...
攻略辅助挂!哈糖大菠萝辅助器(... 攻略辅助挂!哈糖大菠萝辅助器(透视)微乐家乡官方免费下载安装(其实存在有辅助方法)-哔哩哔哩哈糖大菠...
近年来!pokemmo修改器手... 近年来!pokemmo修改器手机版(透视)微乐家乡app辅助器(好像是真的辅助神器)-哔哩哔哩1、p...
现就发布提示!wepoker透... 现就发布提示!wepoker透视最简单三个步骤(透视)微乐宁夏小程序插件(竟然是有辅助脚本)-哔哩哔...
透视辅助!哈糖大菠萝开挂(透视... 透视辅助!哈糖大菠萝开挂(透视)微乐广西小程序(一直存在有辅助app)-哔哩哔哩1、透视辅助!哈糖大...
经调查!wepoker软件安装... 经调查!wepoker软件安装包(透视)微乐卡五星祈福有用吗(竟然是真的辅助方法)-哔哩哔哩1、让任...