Android悬浮窗不用动态申请权限方法

前言

前几天我刚写了一篇《Android实现可移动的悬浮窗》的文章,需要在AndroidManifest.xml里的加上权限申请

而这个权限到了android6.0后需要动态申请,加到app中,运行程序时候会让弹出让你打开上层窗口的权限,有点不太友好。

最近手机里的直播软件如熊猫TV,虎牙直播等,在退出直播房间时右下角会有当前房间的直秋视频继续存在,这里肯定也是用到了悬浮窗,但是我记得在安装这些APP时并没有发现它们会弹出让你打开上层窗口的权限控制,于是决定查找一下这方面的资料看一下。

在度娘的帮助下,找到了下面这篇文章《Android无需权限显示悬浮窗, 兼谈逆向分析app》

由于无法超链接,这里贴上地址:https://www.jianshu.com/p/167fd5f47d5c

文中作者用的反编译UC的APP一步一步的查找找到的这个方法,具体反编译我也不是太了解,就不细说了,我们下面说重点:

文中有这第一段

也就是说悬浮窗的WindowManager.LayoutParams这个参数里面的type,我们把他的值设置为TYPE_TOAST时,是不需要通过android来申请权限的,但是在api19以下的,也就是android4.3及以下的版本中,如果用TYPE_TOAST悬浮窗正常显示, 但不能接受触摸事件.

所以最终的处理方式为当android的api<19时我们用TYPE_PHONE,大于时就用TYPE_TOAST,当然在AndroidManifest.xml里还是要加上

这样就可以兼容所有版本了。


回到我们上次悬浮窗的代码

我们把原来红框里面兼容android8,0版本的判断去掉,改为下面绿框里面的当api<19时用的TYPE_PHONE,否则是TYPE_TOAST.

再运行程序即可实现不用动态申请上层权限即可实现android的悬浮窗效果了。


-END-

长按下方二维码关注

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vaccae

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值