Android申请悬浮窗权限的目的

悬浮窗权限是Android提供的权限中的特殊权限,要申请后再使用,否则会导致弹框不能显示、程序崩溃等问题

注意事项

  1. 悬浮窗适配总体思路
    if(系统没有赋予APP弹出悬浮窗的权限){
    等用户打开权限后,再弹出悬浮窗
    }else{
    直接弹出悬浮窗
    }
  2. 例如要显示一个Dialog设置其为 系统级别
mDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);

有的文章说MIUI系统可设置为WindowManager.LayoutParams.TYPE_TOAST避开悬浮框权限的申请,我的实践经验是不要这样设置,否则利用参考文献中的方法操作后dialog还是显示不出来

  1. 写程序时导入包要导正确,例如我们要用的Setting
    import android.provider.Settings;不要导错
  2. 不同api版本下对悬浮窗权限的处理方法
  • 由于判断权限的类 AppOpsManager 是 API19 版本添加,所以Android 4.4 之前的版本(不包括4.4)就不用去判断了,直接调用 WindowManager 的 addView 方法弹出即可。
  • 悬浮窗权限在 6.0 之后就被 google 单独拿出来管理了,好处就是对我们来说适配就非常方便了,在所有手机和 6.0 以及之后的版本上适配的方法都是一样的,首先要在 Manifest 中静态申请权限,然后在使用时先判断该权限是否已经被授权,如果没有授权使用下面这段代码进行动态申请
不同api版本下对悬浮窗权限的处理方法.png

参考文献

Android 悬浮窗权限各机型各系统适配大全
Android悬浮窗及权限 by JustDo23
github项目

更多相关文章

  1. Android(安卓)自定义权限 ( )
  2. android分享图片到微信,无需申请APP_ID
  3. Android(安卓)二:root 手机的原理
  4. android google map v1 v2 v3 参考
  5. Android静态安全检测 -> Activity组件暴露
  6. Android图表分析的开发
  7. Android安全机制(转载)
  8. Android系统版本与API等级对应关系表
  9. Android动态权限(兼容6.0以下和魅族手机方案)

随机推荐

  1. Android笔记-MultiThreading in Android(
  2. Android 内存管理 &Memory Leak & OOM 分
  3. Android与IOS的优缺点比较
  4. Android的配置文件操作的完美封装(使用注
  5. Android & iOS 开发全面对比分析
  6. Google发布App开发准则 为自主Android平
  7. Android之联系人处理
  8. Android的assets文件夹资源访问
  9. Android的UI显示原理总结
  10. 删除Android固件自带软件