ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Alert Dialog弹窗无法显示,报错Unable to add window android.view.ViewRootImpl$W. permission denied

2022-05-24 17:33:27  阅读:214  来源: 互联网

标签:ViewRootImpl permission OVERLAY SYSTEM system window 报错 TYPE 弹窗


 Android 11上点击事件触发AlertDialog弹窗时,弹窗无法显示;后台打印提示Unable to add window android.view.ViewRootImpl$W. permission denied

代码中设置窗口类型时使用的TYPE_SYSTEM_ALERT,
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);

  关于TYPE_SYSTEM_ALERT在源码中的解释

        /**
         * Window type: system window, such as low power alert. These windows
         * are always on top of application windows.
         * In multiuser systems shows only on the owning user's window.
         * @deprecated for non-system apps. Use {@link #TYPE_APPLICATION_OVERLAY} instead.
         */
        @Deprecated
        public static final int TYPE_SYSTEM_ALERT       = FIRST_SYSTEM_WINDOW+3;

  该类型为系统级别窗口,用于低电量提示等信息显示,窗口显示在最顶部。对于非系统的app,应该使用TYPE_APPLICATION_OVERLAY替代。但是设置这个类型的情况下,可能会被系统弹窗覆盖掉,因此我们需要将它设置为既能显示在最顶部,也不会被其他系统弹窗覆盖的类型。

 

  我们可以使用TYPE_SYSTEM_OVERYLAY类型,同时也不会报错,可以在系统上正常显示弹窗。

/**
         * Window type: system overlay windows, which need to be displayed
         * on top of everything else.  These windows must not take input
         * focus, or they will interfere with the keyguard.
         * In multiuser systems shows only on the owning user's window.
         * @deprecated for non-system apps. Use {@link #TYPE_APPLICATION_OVERLAY} instead.
         */
        @Deprecated
        public static final int TYPE_SYSTEM_OVERLAY     = FIRST_SYSTEM_WINDOW+6;

 







标签:ViewRootImpl,permission,OVERLAY,SYSTEM,system,window,报错,TYPE,弹窗
来源: https://www.cnblogs.com/zoowei/p/16306335.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有