经过搜索资料,发现是这一行代码的问题
mParams.type = WindowManager.LayoutParams.TYPE_TOAST;在使用android.permission.SYSTEM_ALERT_WINDOW 权限的应用无法再使用以下窗口类型来在其他应用和系统窗口上显示悬浮窗
WindowManager.LayoutParams.TYPE_PRIORITY_PHONE WindowManager.LayoutParams.TYPE_PHONE WindowManager.LayoutParams.TYPE_SYSTEM_ERROR WindowManager.LayoutParams.TYPE_SYSTEM_ALERT WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY
增加了WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,使用它可以显示在其他或系统应用上层,当我把type改成这个值时又出现了错误
Unable to add window android.view.ViewRootImpl$W@6d959e1 -- permission denied for window type 2038这个错误是因为本应用程序中的设置选项没有开启在其他应用上层显示的开关。开启就可以成功运行了。也正在琢磨开启的方式。