Caused by: android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootI

来源:互联网 发布:linux中竖线 命令 编辑:程序博客网 时间:2024/06/18 04:18

用到了悬浮按钮,报这个错误,Caused by: android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@4129fe70 -- permission denied for this window type,原因是没有加权限。 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />


ps:众所周知,Window有三种类型,分别是应用Window,子Window和系统Window,应用类window对应着activity,子window不能单独存在,必须依附于父window,例如dialog。系统window需要声明权限才能创建。出现上述错误,WindowManager.LayoutParams.type 一定是设置成了系统级别的。