转自:http://blog.csdn.net/tangmanong/article/details/53114758

Android的窗口体系中,WindowManager占有非常重要的地位,平时我们使用悬浮窗会遇到一些权限的问题。

targetSdkVersion 23

编译,Android6.0及其以上版本手机使用悬浮窗功能时候,会发生

Java.lang.RuntimeException: Unable to create service com.fb.tangyc.fbtools.service.FBService: android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@123e0ab -- permission denied for this window type

的异常,导致程序崩溃。

当Android工程在

targetSdkVersion 22

编译,Android6.0及其以上版本手机使用悬浮窗功能会正常使用

其实原因很简单,大部分的Android6.0手机(尤其是三星,谷歌原生手机)

在大于等于23版本下编译,悬浮窗权限默认是关闭没有权限,然在小于23版本下编译悬浮窗权限是开启有权限的。

所以在大于23版本下编译时需要去检测悬浮窗权限,并且获取悬浮窗权限,下面我就罗列下怎么去检测悬浮窗权限并且获取悬浮窗权限

if(Build.VERSION.SDK_INT>=23){ if(Settings.canDrawOverlays(this)) { //有悬浮窗权限开启服务绑定 绑定权限Intent intent = newIntent(MainActivity.this,FBService.class);startService(intent);}else{ //没有悬浮窗权限m,去开启悬浮窗权限try{ Intent intent=newIntent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);startActivityForResult(intent, OVERLAY_PERMISSION_REQ_CODE);}catch(Exception e) { e.printStackTrace();} }} else{ //默认有悬浮窗权限  但是 华为, 小米,oppo等手机会有自己的一套Android6.0以下  会有自己的一套悬浮窗权限管理 也需要做适配Intent intent = newIntent(MainActivity.this,FBService.class);startService(intent);}

每次使用悬浮窗的时候都要去检测权限,因为悬浮窗权限是可以手动关闭的。

位置位于  (三星S6为例Android6.0.1版本)设置-- 应用程序--应用程序管理器 -- 更多 --可出现在顶部的应用程序 --- 选择你的APP -- 运行在其他应用的上层显示

android6.0 悬浮窗权限,Android6.0系统悬浮窗权限的问题解决方法相关推荐

  1. 微擎 微赞等系统源码模块若干问题解决方法及说明汇总

    微擎 微赞等系统源码模块若干问题解决方法及说明汇总 参考文章: (1)微擎 微赞等系统源码模块若干问题解决方法及说明汇总 (2)https://www.cnblogs.com/westsoft/p/6 ...

  2. linux文件权限umask,linux系统中UMASK权限的用法讲解

    原标题:linux系统中UMASK权限的用法讲解 umask一般是用在你初始创建一个目录或者文件的时候赋予他们的权限. 这里要说明两点: 1.针对目录来说x权限代表可以进入该目录,所以说对于这个权限初 ...

  3. oracle怎么赋予系统权限,讲解Oracle系统中用户权限的赋予和查看

    在Oracle数据库系统中,用户权限分为两种(本文不涉及dba或oper的权限,只讲解普通用户的权限),分别是System Privilege系统权限和User Table Privilege用户数据 ...

  4. linux系统用户没有权限修改,Linux系统用户和权限管理

    一.用户 Linux系统上用户分类为两类:分为管理员用户和普通用户:普通用户又分为两类:系统用户和普通用户.在1.root和普通用户:系统用户:仅用于运行服务程序,登录用户:系统资源的正常使用者. 用 ...

  5. 使用拦截器或者AOP实现权限管理(OA系统中实现权限控制)

    在开发类似与OA管理系统类型的项目中,经常需要设置到权限管理.例如对某个部门的人员CURD操作,默认是该部门的普通员工是不会有该权限的.但若某个员工升级为该部分的负责人.则此时它就拥有对该部门的CUR ...

  6. 【干货】S7-PLCSIM Advanced V3.0 无法启动实例( Error Code:-30,LicenseNotFound)问题解决方法

    问题:S7-PLCSIM Adavanced V3.0 无法启动实例( Error Code:-30,LicenseNotFound) 综合网上所有答案,现将该问题的解决方法总结如下: 1.首先需要确 ...

  7. COUPLE3.0计算过程出现缺少qtintf70.dll文件而无法计算问题解决方法

    由于换电脑原因,会把COUPLE3.0程序拷贝到新电脑上运行.运行时会出现由于缺少qtintf70.dll文件而无法运行. 这个时候需要在这个网址:qtintf70.dll下载 _qtintf70.d ...

  8. Win11系统获取管理员权限的方法

    由于微软最近推出了Win11的操作系统,所有有很多小伙伴都进行安装体验,在使用Win11时,如果没有获取管理员权限,很多操作可能会无法进行,这时我们就需要获取管理员权限了,那么Win11系统该如何获取 ...

  9. 怎么关闭计算机硬件加速,怎么关闭Win8显卡硬件加速?Win8系统关闭显卡硬件加速的方法...

    win8系统开启硬件加速,系统运行速度和效率都会提升很多.但是所有系统开启了显卡硬件加速,都会有此效果,有些还会浪费电,所以很多用户想要关闭显卡硬件加速,但是怎么关闭Win8系统显卡硬件加速呢?不要着 ...

  10. linux测试自动化,一种基于Linux系统下自动化测试RoCE性能的方法及系统与流程

    本发明涉及自动化测试的技术领域,特别涉及一种基于Linux系统下自动化测试roce性能的方法及其系统. 背景技术: 现在迅速发展的服务器行业,对网络服务性能提出了越来越高的要求.特别是在互联网行业以及 ...

最新文章

  1. 与现代传感器的接口:轮询ADC驱动程序
  2. nodejs-函数路由
  3. 条件、循环、函数定义练习
  4. C#实现动态系统托盘图标
  5. docker 安装的东西都在哪儿_热水器越来越不流行了,如今都安装这东西,好用安全,还省电费...
  6. sklearn-数据预处理scale
  7. 高速PCB中常见存储器之FLASH引脚图、布局布线设计
  8. 跨网页的新手引导_用户体验之如何设计一个完美的新手引导流程?(附带案例)...
  9. C语言实现斐波那契数列
  10. 高中计算机会考vb试题,高中信息技术考试vb程序题及答案
  11. 【图像配准】点云配准ICP算法介绍:基础流程、ICP算法的变种
  12. python经典书籍推荐-7本经典的Python书籍,你都读过了么?
  13. 松翰单片机 c语言例程 宏定义出错,松翰单片机 SN8F5702程序例程
  14. EDM模板编写踩坑指南(持续更新中)
  15. 虚幻引擎图文笔记:使用MixamoConverter对Mixamo动画重定向成UESkeleton匹配动画
  16. TI PFC+LLC解决方案在工业电源中的应用-电子研习社
  17. 2022年简历石沉大海,软件测试行业当前找工作有多难?
  18. linux磁盘阵列数据恢复,恢复天使免费数据恢复软件
  19. VBox安装xp虚拟机无法上网
  20. 《游戏引擎架构》笔记八

热门文章

  1. 百度网盘pc端登录二维码加载失败且第三方登录加载不出来
  2. 詹宏志对话梁文道:嘲笑年轻人“小确幸”,是小看了他们
  3. java执行windows下cmd命令的方法
  4. android wifi调试程序问题
  5. 「尚硅谷与腾讯云官方合作」硅谷课堂项目视频发布
  6. Java实现获取公众号用户的OpenID
  7. 免费体验CSDN云IDE使用指南
  8. 解决PS/2接口键盘无法使用的问题
  9. 刀锋铁骑服务器不稳定,看B站博主谈刀锋铁骑血泪发展史扎心啊
  10. 处理时区之间的转换,并解决夏令时问题