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

你可能感兴趣的:(Unable to add window android.view.ViewRootImpl)