Android 如何检查悬浮窗是否显示

 时间:2024-10-16 07:06:44

1、首先,设置Wi艘绒庳焰ndowManager.LayoutParams.type = TYPE_TOAST即可绕过权限,因为在view镙烨莲峪添加之前系统执行了一个检查权限的操作PhoneWindowManager.checkAddPermission()。

Android 如何检查悬浮窗是否显示

2、然后,虽然经历了很多Android版本,但是我们关心的那部分一直没有什么大变化,就是当type == TYPE_TOAST的时候switch语句直接break了,从而跳过了接下来的权限检查。

Android 如何检查悬浮窗是否显示

3、然后,需要注意的一点是TYPE_TOAST在最新的Android 7.1.1上已经被oogle制裁了,只允许添加一个,并且在API 25之后会直接崩溃,具体代码可以查看这里。

Android 如何检查悬浮窗是否显示

4、然后,看一下WindowManager的diff就知道了,不过6.0以上oogle已经提供了通用方法来开启悬浮窗权限,下文会提到,推荐大家去引导用户开启,不要使用暴力的解决方式。

Android 如何检查悬浮窗是否显示

5、然后,在PhoneWindowManager.checkAddPermission()中,系统使用了一个叫AppOpsManag髫潋啜缅er的类,最终调用其中的checkOp()方法来检查权限,但是这个方法本身是隐藏的。

Android 如何检查悬浮窗是否显示

6、最后,所以只能通过反射的方式来调用,另外还需要注意AppOpsManager是API 19才添加的,对于低于这个版本的系统并不能用此方法来检查权限。

Android 如何检查悬浮窗是否显示
  • alook浏览器怎么开启深色模式?
  • 女生如何提高颜值?
  • 《头条里的青春中国》讲述了谁
  • 安卓平板基本使用方法。
  • 热门搜索
    关于春节手抄报的内容 古诗手抄报内容 历史手抄报内容 我的未来不是梦手抄报 数学知识手抄报 手抄报的格式 青春的手抄报 二年级安全手抄报 传染病手抄报 国学经典手抄报资料