Android WindowManager弹窗容易出现的问题

Android  2020年8月12日 pm12:13发布4年前 (2020)更新 城堡大人
87 0 0

WindowManager弹窗提示时需要注意下,比如系统应用和非系统应用权限的不同、Android不同版本的权限申请不同等,下面是我在应用中出现的问题,因此整理一下。

问题一:没有设置android.permission.SYSTEM_ALERT_WINDOW

出现异常提示

Unable to add window android.view.ViewRootImpl$W@41da4958 -- permission denied for this window type

解决方法

  1. 可能是在AndroidManifest.xml中添加如下代码
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
  1. 可能是设置的TYPE错误

比如我设置了WindowManager.LayoutParams.TYPE_SEARCH_BAR,这个type非系统应用是不可以设置的。

mLayoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;

或者其他的

mLayoutParams.type = WindowManager.LayoutParams.TYPE_PHONE;
问题二:permission denied for window type 2038 或者 permission denied for window type 2003

我的应用没有设置为系统应用且运行在Android 9.0上运行,出现异常的提示有如下

android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@72fb5d4 -- permission denied for window type 2038

解决方法

非系统应用,需要在[系统设置]找到[应用和通知]已经的[我们的应用],然后点击进入[高级],打开[在应用上方显示]开关

参考文章

  1. Android: permission denied for window type 2038 using TYPE_APPLICATION_OVERLAY
  2. Android: permission denied for window type 2038

 历史上的今天

  1. 2023: MediaPlayer源码介绍3(0条评论)
  2. 2019: 新井一二三:图书馆的恋人(0条评论)
版权声明 1、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

暂无评论...

随机推荐

林清玄:和时间赛跑

读小学的时候,我的外祖母去世了。外祖母生前最疼爱我。我无法排除自己的忧伤,每天在学校的操场上一圈一圈地跑着,跑得累倒在地上,扑在草坪上痛哭。那哀痛的日子持续了很久,爸爸妈妈也不知道如何安慰我。他们知道与其欺骗我说外祖母睡着了,还不如对我说实话:外祖母永远不会回来了。“什么是永远不会回来了呢?”我问...

[摘]Android颜色渐变之LinearGradient介绍

前言这篇文章介绍得不出,摘抄并整理于此,方便自己查阅。正文Android 支持三种颜色渐变, LinearGradient(线性渐变)、 RadialGradient (放射渐变)、 SweepGradient(扫描渐变)。这三种渐变均继承自android.graphics.Shader,...

Ubuntu18编译FFmpeg笔记

前言系统版本 :Ubuntu 18FFmpeg版本 : ffmpeg version N-102948-g79ebdbb9b9(下载最新的,这是编译后的版本信息)最近有看就整理了一下自己编译ffmpeg的编译过程,方便自己查阅。正文下面就记录编译的过程用的编译脚本以及所遇到的问题。ND...

[摘]Android性能优化篇之内存优化--内存泄漏

SHUI知道这篇文章对Android性能优化篇之内存优化--内存泄漏总结得很到位,基本上涵盖了。感谢感谢。什么是内存泄漏当一个对象已经不需要在使用了,本应该被回收,而另一个正在使用的对象持有它的引用,导致对象不能被回收。因为不能被及时回收的本该被回收的内存,就产生了内存泄漏。如果内存泄漏太多...

修改Android默认壁纸

前言记录一下Android 中如何修改默认壁纸,记录于此,方便自己查阅。个人流水账而已。正文主要涉及目录frameworks/base/core/res/res/packages/services/Car/car_product/overlay/frameworks/base/cor...

Android截图命令总结

前言简单记录一下Android设备多个屏幕或单个屏幕的截图方式。记录一下,方便自己查阅。正文查看displayId查看有屏幕的displayIdadb shell dumpsys window displays | grep displayIdubuntu$ adb shell d...