admin管理员组

文章数量:1576246

问题描述:

程序是用来打开手机摄像头的,但是运行软件的时候报 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);
            }
        }

 

 

 

本文标签: 解决方法原因BadTokenExceptionWindowManagerunable