6.0系统可以动态的获取系统的权限API>22

例如摄像头

举一反三写一个动态获取摄像头的方法,其他的权限也可以稍微修改使用。

在调用摄像头的地方进行判断,系统的版本

Build.VERSION.SDK_INT>22

如果系统6.0或以上,就判断有没有权限:

ContextCompat.checkSelfPermission(MainActivity.this,android.Manifest.permission.CAMERA)!= PackageManager.PERMISSION_GRANTED

PackageManager有两个属性PERMISSION_GRANTED,PERMISSION_DENIED;

GRANTED是已经获取到权限,
DENIED是没有获取到权限;

如果有权限了想干嘛干嘛,如果没有,就去获取权限:

ActivityCompat.requestPermissions(MainActivity.this,new String[]{android.Manifest.permission.CAMERA},CAMERA_OK);

然后获取权限就结束了,然后干嘛呢?获取权限也有个回调:onRequestPermissionsResult

 @Overridepublic void onRequestPermissionsResult(int requestCode,String[] permissions,int[] grantResults) {switch (requestCode){case CAMERA_OK:if (grantResults.length>0&&grantResults[0]==PackageManager.PERMISSION_GRANTED){//这里已经获取到了摄像头的权限,想干嘛干嘛了可以}else {//这里是拒绝给APP摄像头权限,给个提示什么的说明一下都可以。Toast.makeText(MainActivity.this,"请手动打开相机权限",Toast.LENGTH_SHORT).show();}break;default:break;}}

贴一下获取权限的代码:

if (Build.VERSION.SDK_INT>22){if (ContextCompat.checkSelfPermission(MainActivity.this,android.Manifest.permission.CAMERA)!= PackageManager.PERMISSION_GRANTED){//先判断有没有权限 ,没有就在这里进行权限的申请ActivityCompat.requestPermissions(MainActivity.this,new String[]{android.Manifest.permission.CAMERA},CAMERA_OK);}else {//说明已经获取到摄像头权限了 想干嘛干嘛  }}else {
//这个说明系统版本在6.0之下,不需要动态获取权限。}

举一反三,可以把其他的动态申请权限的替换来。别忘了清单文件里面注册上权限。

Android6.0动态获取摄像头权限(举一反三)相关推荐

  1. android6.0动态获取系统权限

    介绍:Google公司在android API23之后为了保护用的隐私和敏感信息,一些权限必须要用户同意才能使用 1.不仅仅静态注册还需要动态获取的权限 如何获取呢? 2.获取的两种方式 1)可参考时 ...

  2. Android6.0动态获取权限java.io.FileNotFoundException: …Permission denied

    异常 Java.io.FileNotFoundException: /storage/emulated/0/Video/ekwing_main_paren.apk(你的文件路径): open fail ...

  3. Android6.0动态设置读写权限(Android拍照或从相册中选图片预览出现问题)

    做了一个Android拍照或从相册中选图片传服务器的demo,出现了问题虽然 图片路径 也可以打印出来,然后去看权限那里也申请了读写权限 <uses-permission android:nam ...

  4. Android 6.0动态获取录音权限

    去年写了个获取存储.定位等的权限,今天拿出来用,发现没有录音,现在补一个,参考上篇动态获取存储的帖子,下面附代码::: //申请录音权限     private static final int GE ...

  5. Android6.0动态申请权限那些坑--以及避免用户选择不再提示后无法获取权限的问题

    Android 6.0 为了保护用户隐私,将一些权限的申请放在了应用运行的时候去申请, 比如以往的开发中,开发人员只需要将需要的权限在清单文件中配置即可,安装后用户可以在设置中的应用信息中看到:XX应 ...

  6. android 动态获取权限有哪些,Android 6.0+ 动态获取权限

    Android 6.0+ 动态获取权限 这里有一个现成的库,可以直接拿来用.方便简单 1.向app下的gradle添加依赖: dependencies{ // android 6.0+ 动态获取权限 ...

  7. 【100个 Unity踩坑小知识点】| Unity调用API ,动态获取Android权限,附带所有Android权限表格

    Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 . 包括游戏开发.美术.建筑.汽车设计.影视在内的所有创作者,借助 Unity 将创意 ...

  8. [Android Studio]详细讲解Android6.0以上请求应用权限(解决请求权限窗口一闪而过的问题)

    现在的主流手机的Android版本都是8.0/9.0(笔者的华为手机为9.0),所以在开发Android的时候尽量使用Android8.0的版本(SDK 26).随着Android版本的提升,系统的安 ...

  9. Ubuntu系统下OpenCV使用实例(虚拟机获取摄像头权限)

    文章目录 一.OpenCV图片特效实例(实现原图中心放大两倍) 二.OpenCV视频使用实例 1.虚拟机获取摄像头权限 2.播放视频 3.录制视频 Ubuntu下OpenCV初步学习至此结束!! 一. ...

最新文章

  1. GPU与CPU交互技术
  2. Linux centos 安装VNC 服务过程
  3. python 信号量,Event, 定时器
  4. linux测试函数耗时tick数,C语言中怎样测验函数执行时间
  5. php内核介绍及扩展开发指南 pdf vp进,PHP内核介绍及扩展开发指南—Extensions 的编写...
  6. 【数据结构和算法笔记】二叉树的概念和性质
  7. OCR文字识别技术总结(三)
  8. 开了立体声混音仍然不能内录_相位表是如何为你的混音工作带来帮助的
  9. Redis初识、设计思想与一些学习资源推荐
  10. 极乐净土—官方中文版 单曲循环洗脑三天了φ(ω*)
  11. 渗透测试工程师(实习生)面试题目
  12. 基于机器学习和序列信息的蛋白质亚线粒体定位预测算法研究
  13. Android Studio第十课网络编程2(学习打卡Day15)
  14. 南朝皇帝简介-20170604
  15. OpenGL 渐变色背景
  16. C++学习路线图(新)
  17. CTB全球创新大挑战组队中 全新课题火热来袭
  18. 【selenium爬虫】 selenium自动化爬取京东图书信息
  19. skylake服务器处理器M系列,详解第6代英特尔酷睿M处理器!
  20. 豆瓣读书top250数据爬取与可视化

热门文章

  1. 谈谈运营经验:颠覆式创新
  2. c# 实现WebSocket
  3. ddn高性能服务器,HPE牵手DDN打造整合的高性能服务器存储产品组合
  4. 网络编程“惊群“问题
  5. A Game of Thrones(24)
  6. [转]常用CASE工具介绍
  7. 【Linux】ifconfig不显示ip地址
  8. python32位和64位有什么区别_python32位和64位的区别是什么
  9. 如何打造一个抗住千万级流量短信服务(续)
  10. 【020期】面试官问:Java 遍历 Map 集合有几种方式?效率如何?