博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android6.0动态获取权限
阅读量:6869 次
发布时间:2019-06-26

本文共 1091 字,大约阅读时间需要 3 分钟。

Android 6.0动态获取权限

Android 6.0在我们原有的AndroidManifest.xml声明权限的基础上,又新增了运行时权限动态检测

以下权限都需要在运行时判断:

  • 身体传感器
  • 日历
  • 摄像头
  • 通讯录
  • 地理位置
  • 麦克风
  • 电话
  • 短信
  • 存储空间

效果图

  • Android 6.0添加动态获取权限

    这里写图片描述

  • Android 6.0没有动态获取权限

    这里写图片描述

动态获取权限

每次在用到摄像头等,这样需要权限的操作的时候,都要动态判断一下权限

// 扫描功能if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {    //申请CAMERA权限    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 3);} else {    Intent openCameraIntent = new Intent(this, CaptureActivity.class);    startActivityForResult(openCameraIntent, 0);}

如果没有权限,会弹窗提示用户,由用户来决定,是否给予该权限

用户选择完以后,会执行下面的回调

@Overridepublic void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {    super.onRequestPermissionsResult(requestCode, permissions, grantResults);    if (3 == requestCode) {        if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {            // 授权            Intent openCameraIntent = new Intent(this, CaptureActivity.class);            startActivityForResult(openCameraIntent, 0);        } else {            // 未授权        }    }}
你可能感兴趣的文章
DotNet程序配置文件
查看>>
C#基础第五天-作业答案-用DataTable制作名片集
查看>>
转: Eclipse 分屏显示同一个文件
查看>>
Selenium2+python自动化15-select下拉框
查看>>
Asp.net 实现Session分布式储存(Redis,Mongodb,Mysql等) sessionState Custom
查看>>
ASP.NET MVC5+EF6+EasyUI 后台管理系统(81)-数据筛选(万能查询)
查看>>
如果觉得配置文件没有错,但web-dev-server总是报错,可以在hosts文件里加一行127.0.0.1 localhost...
查看>>
【转】分享8年开发经验,浅谈个人发展经历,明确自己发展方向
查看>>
If you only do what you can do you'll never be more than you are now.
查看>>
详解:基于WEB API实现批量文件由一个服务器同步快速传输到其它多个服务器功能...
查看>>
JavaScript获取浏览器类型与版本
查看>>
STM32普通定时器(TIM2-7)的时钟源
查看>>
[Android]使用Dagger 2进行依赖注入 - Producers(翻译)
查看>>
时序列数据库选型
查看>>
lamp安装
查看>>
QDEZ集训笔记【更新中】
查看>>
手工配置rsyslog配置文件详解
查看>>
composer安装
查看>>
Linux下快速迁移海量文件的操作记录
查看>>
windows环境redis主从安装部署
查看>>