目录
- 问题一:没有设置android.permission.SYSTEM_ALERT_WINDOW
- 问题二:permission denied for window type 2038 或者 permission denied for window type 2003
WindowManager弹窗提示时需要注意下,比如系统应用和非系统应用权限的不同、Android不同版本的权限申请不同等,下面是我在应用中出现的问题,因此整理一下。
问题一:没有设置android.permission.SYSTEM_ALERT_WINDOW
出现异常提示
Unable to add window android.view.ViewRootImpl$W@41da4958 -- permission denied for this window type
解决方法
- 可能是在AndroidManifest.xml中添加如下代码
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
- 可能是设置的TYPE错误
比如我设置了WindowManager.LayoutParams.TYPE_SEARCH_BAR,这个type非系统应用是不可以设置的。
mLayoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; 或者其他的 mLayoutParams.type = WindowManager.LayoutParams.TYPE_PHONE;
问题二:permission denied for window type 2038 或者 permission denied for window type 2003
我的应用没有设置为系统应用且运行在Android 9.0上运行,出现异常的提示有如下
android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@72fb5d4 -- permission denied for window type 2038
解决方法
非系统应用,需要在[系统设置]找到[应用和通知]已经的[我们的应用],然后点击进入[高级],打开[在应用上方显示]开关
参考文章
© 版权声明