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