Unable to add window android.view.ViewRootImpl

          wm = (WindowManager)getApplicationContext().getSystemService(WINDOW_SERVICE);
        params = new WindowManager.LayoutParams();
        params.type = WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;                   
                params.alpha = seekbar_yejian.getProgress();
                    if (params.alpha < 30)
                        params.alpha = 30;
                    wm.addView(tv, params);

wm.addView(tv, params);这行代码报错
image.png

WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY

在最新的Android 8.0中,SYSTEM_ALERT_WINDOW权限的使用进一步受限,对于第三方应用程序而言,该权限保护下的TYPE_SYSTEM_ALERT、TYPE_SYSTEM_OVERLAY、TYPE_SYSTEM_ERROR等几类勒索软件常用窗口完全被禁用。即使获得了用户动态授权,使用这几种窗口也会触发窗口类型错误:

image.png

取而代之,为了解决窗口置顶需求,Google引进了一种新窗口类型 TYPE_APPLICATION_OVERLAY,这类型窗口将覆盖其他第三方应用的窗口,但却始终位于系统状态栏与输入法窗口之下
所以8.0窗口解决方案~
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY
改成
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY
即可

相关资料
http://blogs.360.cn/post/android_o_against_ransomware.html

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容