文档章节

Android 6.0权限授予

whitemine
 whitemine
发布于 2016/07/15 15:42
字数 279
阅读 30
收藏 1

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

在android 6.0以及sdk23以上,权限就被分为normal和dangerous

Dangerous Permision:

Permission Group Permissions
CALENDAR
CAMERA
CONTACTS
LOCATION
MICROPHONE
PHONE
SENSORS
SMS
STORAGE
危险权限设置:
int hasPermision = checkSelfPermission(Manifest.permission.CAMERA);
            if (hasPermision != PackageManager.PERMISSION_GRANTED) {
                if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA)) {
                    
                    AlertDialog dialog = new AlertDialog.Builder(this)
                            .setMessage("该相册需要赋予访问存储的权限,不开启将无法正常工作, 是否授权?")
                            .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    dialog.dismiss();
                                    ActivityCompat.requestPermissions(MainActivity.this,
                                            new String[]{Manifest.permission.CAMERA},
                                            PERMISION_ID);
                                }
                            })
                            .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    dialog.dismiss();
                                    System.exit(0);
                                }
                            }).create();
                    dialog.show();
                } else {
                    
                    ActivityCompat.requestPermissions(this,
                            new String[]{Manifest.permission.CAMERA},
                            PERMISION_ID);
                }
checkSelfPermission(Manifest.permission.CAMERA):判断权限是否被授予
ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA):判断权限授予是否被拒绝,如果第一次权限授予的时候用户拒绝授予权限,再次运行这段代码时返回ture

 

处理权限申请回调:

@Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        if (requestCode == PERMISION_ID) {
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                //权限授予成功
            } else {
                //权限授予失败
            }
        }
    }

ps:如果权限在AndroidManifest中没有申请过,是不会有权限授予弹出框出来的

© 著作权归作者所有

whitemine
粉丝 0
博文 18
码字总数 3731
作品 0
南京
私信 提问
安卓应用安全指南 5.2.1 权限和保护级别 示例代码

5.2.1 权限和保护级别 示例代码 原书:Android Application Secure Design/Secure Coding Guidebook 译者:飞龙 协议:CC BY-NC-SA 4.0 5.2.1.1 如何使用 Android OS 的系统权限 Android 操作...

apachecn_飞龙
2018/04/01
0
0
Android 在运行时请求权限

从 Android 6.0(API 级别 23)开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授予。此方法可以简化应用安装过程,因为用户在安装或更新应用时不需要授予权限。它还让用户可以...

嘿嘿嘿IT
04/01
13
0
Android权限禁止及友好提示用户开通必要权限

Android权限 Android安全架构规定:默认情况下,任何应用都没有权限执行对其他应用、操作系统或用户有不利影响的任何操作。这包括读写用户的私有数据(联系人,短信,相册,位置)、读写其他...

丁先森
04/08
0
0
PermissionsDispatcher,Android 6.0 运行时权限

运行时权限 从 Android 6.0(API 级别 23)开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授予。 系统权限分为两类: 正常权限:只需在你应用的 Androidmanifest.xml 中列出,...

SuShine
01/08
334
0
android 权限库EasyPermissions

文章链接:https://mp.weixin.qq.com/s/H63Sn03xV0JoINXB4SWWKA 众所周知,在android 6.0之后,如果应用程序需要危险权限,则用户必须明确向应用授予该权限。今天推荐一个权限相关的库EasyP...

程序猿tx
2018/12/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

在C语言中“静态”是什么意思?

我已经在C代码的不同地方看到了static一词。 这就像C#中的静态函数/类(实现在对象之间共享)吗? #1楼 多文件变量作用域示例 在这里,我说明了静态如何影响多个文件中函数定义的范围。 交流...

javail
18分钟前
3
0
利用 FC + OSS 快速搭建 Serverless 实时按需图像处理服务

作者:泽尘 简介 随着具有不同屏幕尺寸和分辨率设备的爆炸式增长,开发人员经常需要提供各种尺寸的图像,从而确保良好的用户体验。目前比较常见的做法是预先为一份图像存放多份具有不同尺寸的...

阿里巴巴云原生
20分钟前
2
0
前端架构最佳实践

Folders-by-Feature Structure 胜过 Folders-by-Type Structure

lilugirl
31分钟前
4
0
Seata AT 模式启动源码分析

从上一篇文章「分布式事务中间件Seata的设计原理」讲了下 Seata AT 模式的一些设计原理,从中也知道了 AT 模式的三个角色(RM、TM、TC),接下来我会更新 Seata 源码分析系列文章。今天就来分...

后端进阶
32分钟前
4
0
Python中“自我”一词的目的是什么?

Python中self词的目的是什么? 我知道它是指从该类创建的特定对象,但是我看不到为什么要将它显式地作为参数添加到每个函数中。 为了说明这一点,在Ruby中,我可以这样做: class myClass ...

技术盛宴
34分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部