Android悬浮窗各版本系统适配方案

本文详细介绍了Android悬浮窗在不同系统版本上的适配方案,包括4.4以下使用TYPE_SYSTEM_ALERT,4.4到7.0使用TYPE_TOAST,7.1使用TYPE_SYSTEM_ALERT并申请权限,8.0及以上使用TYPE_APPLICATION_OVERLAY。讨论了360和应用宝的处理方式,并提供关键代码示例。
摘要由CSDN通过智能技术生成

悬浮球是什么?

        所谓的悬浮球或者悬浮窗,就是置于屏幕最上层的一个可操作控件,在本应用处于前台或者后台的时候均可见、可操作。360手机助手、应用宝均有此功能。悬浮球功能多见于提供手机清理、加速功能的应用,因其始终展示在屏幕顶部,方便用户触达,也是增强用户粘性、提升App活跃的不错手段。

 

实现原理是什么?

  悬浮球的实现就是通过WindowManageraddView方法,把一个自定义View添加到Window,关键点在于addView时候给自定义View指定的LayoutParams中的type参数。

  其实系统提供了标准类型——LayoutParams.TYPE_SYSTEM_ALERT,用来实现悬浮球功能使用,但是这种类型需要申请权限:android.permission.SYSTEM_ALERT_WINDOWAndroid6.0之前还好,因为是静态权限,申请就申请,反正应用安装的时候用户就给授权了,但Android6.0引入了运行时权限,这个权限必须在使用时动态申请,这下就麻烦了。因为产品经理希望用户的操作越简单越好,最好不需要动态申请任何权限就能实现各种功能。

  那如何在Android6.0及以后系统上绕开运行时权限实现悬浮球呢?那就是把type参数的值指定为LayoutParams.TYPE_TOAST。这一点网上有很多文章介绍(譬如:点击打开链接),欲了解细节,请自行搜索。其根本就是利用系统源码漏洞,绕开了权限申请。

  这样一来,好像问题都解决了&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值