最近在做一个项目中需要适配各个机器的副屏显示功能,其中涵盖了安卓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 权限的解决方案相关推荐

  1. 【安卓笔记】android申请储存权限,读写文件

    首先在AndroidManifest.xml中注册读取USB存储设备中的内容 <!-- 读取您的USB存储设备中的内容 --><uses-permission android:nam ...

  2. 安卓11上的存储权限问题

    这篇文章,想来发布的有些晚了,安卓11已经发布多时了,关于安卓11上的存储权限变更的文章数不胜数,所以这篇文章只做为自己的一个简单的记录吧! 在说11之前,我们先回忆以下10上存储权限的变更:每个应用 ...

  3. 经验分享 | 通过adbd配置漏洞在安卓设备上提升权限

    近日,Android上的一个本地提权漏洞已被确认,该漏洞可通过设备上运行的Android Debug Bridge Daemon(adbd)被利用. 如果一个安卓设备被发现正在运行于TCP端口监听的a ...

  4. 安卓APP上传市场开通开发者权限\上传操作

    安卓APP上传市场开通开发者权限\上传操作 一.百度市场 一).http://app.baidu.com/ 百度开发者平台--直接入口 http://apk.hiapk.com/ 安卓市场(已与百度整 ...

  5. 安卓 多条通知_盘点安卓手机上那些让苹果手机用户羡慕不已的超实用功能

    众所都知安卓和苹果的系统各有各的优势和劣势,安卓系统相对开放自由一点,对应的安全性和流畅度方面就稍差一点.而苹果的系统是封闭的,所以安全性和流畅度方面更好一筹,相对的开放和自由度就差了一点,安卓系统许 ...

  6. Android(安卓)上传文件到阿里云点播,阿里云点播转码

    Android(安卓)上传文件到阿里云点播,阿里云点播转码 文章目录 Android(安卓)上传文件到阿里云点播,阿里云点播转码 一:登录阿里云点播平台配置添加转码模板组 1:需要什么参数,可自行填写 ...

  7. WebRTC 如何在安卓系统上采集音频数据

    目录 步骤一.获取麦克风权限 步骤二.音频采集模块初始化 步骤三.启动音频采集流程 步骤四.音频预处理 我们都知道音视频通讯的前提是采集本地的音频和视频数据信息.今天,我们就来了解一下 WebRTC ...

  8. react native新建项目运行在安卓设备上

    最近编辑于2018年6月29日 一. 根据http://facebook.github.io/react-native/docs/getting-started.html或者https://react ...

  9. 安卓okhttp上传jason和图片_微信图片总是「已过期或被清理」?简单 3 招,可摆脱烦恼...

    微信图片总是「已过期或被清理」?简单 3 招可摆脱烦恼 除了文字.表格.PPT 和 PDF,大家日常办公中也常常和「图片文件」打交道. 于是,我们总碰到这样的问题: 1)图片文件太大,在线传输耗时,甲 ...

最新文章

  1. HDU 3966-Aragorn's Story 树链剖分+树状数组
  2. java调用python,传参json字符串,含中文传参
  3. 计算机cmd是什么 74,CMD是什么?
  4. 【自动驾驶】一文读懂自动驾驶汽车产业链上下游
  5. JavaScript 多线程概念的含义
  6. C# 中的字符串内插
  7. 日常英语:最近的药店在哪里
  8. 宅家必备 | 笔记本开启WiFi共享
  9. 湖南省中职计算机应用教资面试流程?
  10. H3C交换机配置trunk
  11. HFSS初探日志(六)被动毫米波成像系统馈源天线
  12. 和风天气预报AndroidAPP-安卓(包含功能:天气预报-备忘录-高德地图定位-日历)
  13. 算法----火柴拼正方形
  14. ppt如何转换成pdf
  15. 支付宝信用卡还款即将收费,3个方法免手续费!
  16. margin-top、padding-top的值为百分比
  17. python 人工智能编程_最适合人工智能开发的5种编程语言
  18. cuda operator稀疏矩阵csr相加
  19. Markdown入门和解决MD文件上传博客后图片无法显示问题
  20. 恒指李阳12.6日预测及操作建议

热门文章

  1. uniapp 微信小程序实现运动轨迹、行车轨迹、历史轨迹、轨迹回放、不同速度有不同的路线颜色
  2. 视频转文字怎么操作?这些方法值得收藏
  3. 【框架】amaze ui学习(一)
  4. 输入方向的流量控制 --ifb
  5. [转载]关于sql连接语句中的Integrated Security=SSPI
  6. 联想y7000p麦克风插上耳机声音太小的问题
  7. 敏捷学习之Scrum五个事件
  8. Monotonic Matrix(lemma定理)
  9. vue v-if 判断某个元素满足多个条件的写法
  10. 基于ABP的AppUser对象扩展