Android无权限弹悬浮窗适配8.0

背景


  相信大家在开发的过程中肯定会遇到创建悬浮框需要权限的问题,如果不申请权限会出现以下错误:

 token null is not valid; is your activity running?

  或者类似的错误,这类的文章在百度上面经常可以查看到,但是基本上都是停留在Android6.0以下的,文章比较老旧。随着6.0之后的巨大变化,主要是搞版本之后Google开启了严苛模式,使用户的隐私更加的难获取,对某些敏感手机信息,我们不仅需要在AndroidMainfest.xml配置文件中申请权限,还要在代码中进行动态权限的申请,我们今天讨论的悬浮框权限就是其实的一个,今天我分享的这篇文章最高适配到最新的Android8.0,测试的手机包含了国内外的各大厂商的大部分主流手机。Demo最低适配到api 10,最高适配api27。
##思路

  我们都清楚Android碎片的化的严重,但其实也有个大致版本的分割线,为了迎合此文,我们大致把手机大致分为3个区间,其实19,22,16的版本都具有很明显的变换。

  • api<19 ,android 4.4以前的
  • api>22,api<26, Android4.4与8.0之间的
  • api>=26 最新版本的Android手机

##功能

1.唤醒一个悬浮框
2.点击底部虚拟按钮,悬浮框消失不见。
3.监听悬浮框的按钮

技术实现

前提:

  1. 尽量不在配置文件中申请权限。
  2. 尽量不在当前APP申请动态权限。
  3. 如果绕不过去前两者,则引导用户开启权限。

核心代码:

  其中最关键的是圈中代码,对type进行的适配。有兴趣的可以下载Demo在研究研究,该篇文章以研究为主。
这里写图片描述

测试机型

厂商 型号 Android版本号 系统 配置静态权限 动态悬浮框开关 targetSdkVersion 交互成功
SAMSUNG 三星Nexus 4.3(18) 4.3 Y
SAMSUNG 三星Note3 5.0(21) 5.0 Y
  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值