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权限。

相关内容

热门资讯

每日必看教程!wepokerp... 您好,wepokerplus万能挂这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302...
科普分享!WePoKer辅助器... 科普分享!WePoKer辅助器,wepoker透视脚本免费下载pc,玩家教你(有挂神器)1、不需要A...
大神推荐!德普之星辅助工具如何... 大神推荐!德普之星辅助工具如何打开,wepoker好友助力码,科技教程(有挂技巧);亲真的是有正版授...
热点推荐!aapoker插件下... 热点推荐!aapoker插件下载,hhpoker透视工具,黑科技教程(有挂技巧);小薇(透视辅助)致...
一起来探讨!aapoker插件... 一起来探讨!aapoker插件下载,模拟器打开hhpoker,透牌教程(有挂神器);亲真的是有正版授...
2分钟细说!佛手在线是不是有挂... 2分钟细说!佛手在线是不是有挂,wepoker透视脚本安卓,安装教程(有挂方法);1.佛手在线是不是...
查到实测!wepoker手机助... 查到实测!wepoker手机助手,拱趴大菠萝挂哪里,解说技巧(有挂技巧)准备好在拱趴大菠萝挂哪里ia...
必备教程!德普之星透视辅助,哈... 必备教程!德普之星透视辅助,哈糖大菠萝怎么挂,曝光教程(有挂软件);实战中需综合运用上述技巧,并根据...
玩家必看攻略!红龙poker辅... 玩家必看攻略!红龙poker辅助工具,pokernow辅助工具,详细教程(有挂辅助)是一款可以让一直...
推荐一款!poker worl... 推荐一款!poker world辅助,hhpkoer辅助挂是真的吗,透明挂教程(有挂神器)这是由厦门...