android6.0 悬浮窗权限,Android6.0系统悬浮窗权限的问题解决方法
转自: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)微擎 微赞等系统源码模块若干问题解决方法及说明汇总 (2)https://www.cnblogs.com/westsoft/p/6 ...
- linux文件权限umask,linux系统中UMASK权限的用法讲解
原标题:linux系统中UMASK权限的用法讲解 umask一般是用在你初始创建一个目录或者文件的时候赋予他们的权限. 这里要说明两点: 1.针对目录来说x权限代表可以进入该目录,所以说对于这个权限初 ...
- oracle怎么赋予系统权限,讲解Oracle系统中用户权限的赋予和查看
在Oracle数据库系统中,用户权限分为两种(本文不涉及dba或oper的权限,只讲解普通用户的权限),分别是System Privilege系统权限和User Table Privilege用户数据 ...
- linux系统用户没有权限修改,Linux系统用户和权限管理
一.用户 Linux系统上用户分类为两类:分为管理员用户和普通用户:普通用户又分为两类:系统用户和普通用户.在1.root和普通用户:系统用户:仅用于运行服务程序,登录用户:系统资源的正常使用者. 用 ...
- 使用拦截器或者AOP实现权限管理(OA系统中实现权限控制)
在开发类似与OA管理系统类型的项目中,经常需要设置到权限管理.例如对某个部门的人员CURD操作,默认是该部门的普通员工是不会有该权限的.但若某个员工升级为该部分的负责人.则此时它就拥有对该部门的CUR ...
- 【干货】S7-PLCSIM Advanced V3.0 无法启动实例( Error Code:-30,LicenseNotFound)问题解决方法
问题:S7-PLCSIM Adavanced V3.0 无法启动实例( Error Code:-30,LicenseNotFound) 综合网上所有答案,现将该问题的解决方法总结如下: 1.首先需要确 ...
- COUPLE3.0计算过程出现缺少qtintf70.dll文件而无法计算问题解决方法
由于换电脑原因,会把COUPLE3.0程序拷贝到新电脑上运行.运行时会出现由于缺少qtintf70.dll文件而无法运行. 这个时候需要在这个网址:qtintf70.dll下载 _qtintf70.d ...
- Win11系统获取管理员权限的方法
由于微软最近推出了Win11的操作系统,所有有很多小伙伴都进行安装体验,在使用Win11时,如果没有获取管理员权限,很多操作可能会无法进行,这时我们就需要获取管理员权限了,那么Win11系统该如何获取 ...
- 怎么关闭计算机硬件加速,怎么关闭Win8显卡硬件加速?Win8系统关闭显卡硬件加速的方法...
win8系统开启硬件加速,系统运行速度和效率都会提升很多.但是所有系统开启了显卡硬件加速,都会有此效果,有些还会浪费电,所以很多用户想要关闭显卡硬件加速,但是怎么关闭Win8系统显卡硬件加速呢?不要着 ...
- linux测试自动化,一种基于Linux系统下自动化测试RoCE性能的方法及系统与流程
本发明涉及自动化测试的技术领域,特别涉及一种基于Linux系统下自动化测试roce性能的方法及其系统. 背景技术: 现在迅速发展的服务器行业,对网络服务性能提出了越来越高的要求.特别是在互联网行业以及 ...
最新文章
- 与现代传感器的接口:轮询ADC驱动程序
- nodejs-函数路由
- 条件、循环、函数定义练习
- C#实现动态系统托盘图标
- docker 安装的东西都在哪儿_热水器越来越不流行了,如今都安装这东西,好用安全,还省电费...
- sklearn-数据预处理scale
- 高速PCB中常见存储器之FLASH引脚图、布局布线设计
- 跨网页的新手引导_用户体验之如何设计一个完美的新手引导流程?(附带案例)...
- C语言实现斐波那契数列
- 高中计算机会考vb试题,高中信息技术考试vb程序题及答案
- 【图像配准】点云配准ICP算法介绍:基础流程、ICP算法的变种
- python经典书籍推荐-7本经典的Python书籍,你都读过了么?
- 松翰单片机 c语言例程 宏定义出错,松翰单片机 SN8F5702程序例程
- EDM模板编写踩坑指南(持续更新中)
- 虚幻引擎图文笔记:使用MixamoConverter对Mixamo动画重定向成UESkeleton匹配动画
- TI PFC+LLC解决方案在工业电源中的应用-电子研习社
- 2022年简历石沉大海,软件测试行业当前找工作有多难?
- linux磁盘阵列数据恢复,恢复天使免费数据恢复软件
- VBox安装xp虚拟机无法上网
- 《游戏引擎架构》笔记八