关于在安卓M上无法申请 SYSTEM_ALERT_WINDOW 权限的解决方案
最近在做一个项目中需要适配各个机器的副屏显示功能,其中涵盖了安卓5.0以上的各个版本。其中想多了解关于安卓副屏功能的可以参考这篇文章:
安卓Presentation
简单的说在安卓中使用副屏需要用到 Presentation 这个类,而要想保证副屏全局都能显示,首先传递的上下文对象 Context 可以是来自 Application 或者 Service ,并且还需要额外开启 SYSTEM_ALERT_WINDOW 权限。
由于安卓6.0以上需要动态申请权限,然而 SYSTEM_ALERT_WINDOW 比较特殊,无法直接通过代码 ActivityCompat.requestPermissions 去申请。则需要间接引导用户到设置页面提示用户授权:
参考代码如下:
//参考自http://stackoverflow.com/questions/32061934/permission-from-manifest-doesnt-work-in-android-6
public static int OVERLAY_PERMISSION_REQ_CODE = 1234;@TargetApi(Build.VERSION_CODES.M)
public void requestDrawOverLays() {if (!Settings.canDrawOverlays(MainActivity.this)) {Toast.makeText(this, "您还没有打开悬浮窗权限", Toast.LENGTH_SHORT).show();//跳转到相应软件的设置页面Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + MainActivity.this.getPackageName()));startActivityForResult(intent, OVERLAY_PERMISSION_REQ_CODE);} else {// 授权成功之后执行的方法...}
}@TargetApi(Build.VERSION_CODES.M)
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {if (requestCode == OVERLAY_PERMISSION_REQ_CODE) {if (!Settings.canDrawOverlays(this)) {Toast.makeText(this, "授权失败", Toast.LENGTH_SHORT).show();} else {Toast.makeText(this, "授权成功", Toast.LENGTH_SHORT).show();}}
}
关于在安卓M上无法申请 SYSTEM_ALERT_WINDOW 权限的解决方案相关推荐
- 【安卓笔记】android申请储存权限,读写文件
首先在AndroidManifest.xml中注册读取USB存储设备中的内容 <!-- 读取您的USB存储设备中的内容 --><uses-permission android:nam ...
- 安卓11上的存储权限问题
这篇文章,想来发布的有些晚了,安卓11已经发布多时了,关于安卓11上的存储权限变更的文章数不胜数,所以这篇文章只做为自己的一个简单的记录吧! 在说11之前,我们先回忆以下10上存储权限的变更:每个应用 ...
- 经验分享 | 通过adbd配置漏洞在安卓设备上提升权限
近日,Android上的一个本地提权漏洞已被确认,该漏洞可通过设备上运行的Android Debug Bridge Daemon(adbd)被利用. 如果一个安卓设备被发现正在运行于TCP端口监听的a ...
- 安卓APP上传市场开通开发者权限\上传操作
安卓APP上传市场开通开发者权限\上传操作 一.百度市场 一).http://app.baidu.com/ 百度开发者平台--直接入口 http://apk.hiapk.com/ 安卓市场(已与百度整 ...
- 安卓 多条通知_盘点安卓手机上那些让苹果手机用户羡慕不已的超实用功能
众所都知安卓和苹果的系统各有各的优势和劣势,安卓系统相对开放自由一点,对应的安全性和流畅度方面就稍差一点.而苹果的系统是封闭的,所以安全性和流畅度方面更好一筹,相对的开放和自由度就差了一点,安卓系统许 ...
- Android(安卓)上传文件到阿里云点播,阿里云点播转码
Android(安卓)上传文件到阿里云点播,阿里云点播转码 文章目录 Android(安卓)上传文件到阿里云点播,阿里云点播转码 一:登录阿里云点播平台配置添加转码模板组 1:需要什么参数,可自行填写 ...
- WebRTC 如何在安卓系统上采集音频数据
目录 步骤一.获取麦克风权限 步骤二.音频采集模块初始化 步骤三.启动音频采集流程 步骤四.音频预处理 我们都知道音视频通讯的前提是采集本地的音频和视频数据信息.今天,我们就来了解一下 WebRTC ...
- react native新建项目运行在安卓设备上
最近编辑于2018年6月29日 一. 根据http://facebook.github.io/react-native/docs/getting-started.html或者https://react ...
- 安卓okhttp上传jason和图片_微信图片总是「已过期或被清理」?简单 3 招,可摆脱烦恼...
微信图片总是「已过期或被清理」?简单 3 招可摆脱烦恼 除了文字.表格.PPT 和 PDF,大家日常办公中也常常和「图片文件」打交道. 于是,我们总碰到这样的问题: 1)图片文件太大,在线传输耗时,甲 ...
最新文章
- HDU 3966-Aragorn's Story 树链剖分+树状数组
- java调用python,传参json字符串,含中文传参
- 计算机cmd是什么 74,CMD是什么?
- 【自动驾驶】一文读懂自动驾驶汽车产业链上下游
- JavaScript 多线程概念的含义
- C# 中的字符串内插
- 日常英语:最近的药店在哪里
- 宅家必备 | 笔记本开启WiFi共享
- 湖南省中职计算机应用教资面试流程?
- H3C交换机配置trunk
- HFSS初探日志(六)被动毫米波成像系统馈源天线
- 和风天气预报AndroidAPP-安卓(包含功能:天气预报-备忘录-高德地图定位-日历)
- 算法----火柴拼正方形
- ppt如何转换成pdf
- 支付宝信用卡还款即将收费,3个方法免手续费!
- margin-top、padding-top的值为百分比
- python 人工智能编程_最适合人工智能开发的5种编程语言
- cuda operator稀疏矩阵csr相加
- Markdown入门和解决MD文件上传博客后图片无法显示问题
- 恒指李阳12.6日预测及操作建议