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
网友评论