WindowManager$BadTokenException: Unable to add window ... 原因及解决方法

问题描述:

程序是用来打开手机摄像头的,但是运行软件的时候报 WindowManager$BadTokenException 并且软件强制退出

问题原因:

安卓版本6.0以上会因为SYSTEM_ALERT_WINDOW权限的问题,无法在最上层显示,调试的时候就会出现这个异常

解决方法:

简单方法:调安卓版本,在 build.gradle 中将 targetSdkVersion 调成 22 ,问题解决

其他方法:在 onCreate() 方法中添加以下代码

       //让用户手动授权 
       if (Build.VERSION.SDK_INT >= 23) {
            if (!Settings.canDrawOverlays(MainActivity.this)) {
                Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
                        Uri.parse("package:" + getPackageName()));
                startActivity(intent);
            }
        }
发布了118 篇原创文章 · 获赞 20 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/zhang33565417/article/details/102699872