安卓6.0权限简介

android 6.0以后增强了权限管理,如果想要和以前一样的话,可以把目标版本设置为23以下,这样的可以默认获取权限;下面主要是简单介绍下运行时权限问题的解决。

运行时权限开发应用

Android6.0对权限进行了分类,分为:

1. Normal Premission:普通权限

2. Dangerous Permission/Group:危险权限/组

*危险权限分组:比如当用户授予应用读sdk权限,则该应用同时拥有写的权限,而不会再次询问用户*

新增API

ContextCompact.checkSelfPermission()检测是否拥有权限

ActivityCompact.requestPermission()申请授权

onRequestPermissionsResult()用户是否授权

ActivityCompat.shouldShowRequestPermissionRationale()权限解释(用户拒绝后出现)

使用流程:

在manifest清单文件中添加权限(适配6.0以下)

检查权限(危险)

申请授权


1.判断版本是否是23及以上

public static booleanneedRequestPermission() {

returnBuild.VERSION.SDK_INT>=23;

}

2.检测权限是否获取:

ContextCompat.checkSelfPermission(context, permission) !=PackageManager.PERMISSION_GRANTED

如果为ture 则需要申请权限,如果为false 则可以直接执行

3.申请权限:

第一个参数: 上下文

第二个参数:需要申请的权限

第三个参数:请求码

ActivityCompat.requestPermissions(context,newString[]{Manifest.permission.CALL_PHONE},1);

4.申请的回调

@Override

public voidonRequestPermissionsResult(intrequestCode,@NonNullString[] permissions,@NonNullint[] grantResults) {

}

根据请求码判断是请求的哪个权限,然后重新判断权限是否获取,根据获取结果执行操作;如果没有权限不能使用应用的话,则可以重新申请对应的权限,否则关闭app


推荐使用的第三方:

//运行时权限AndPermission依赖库

compile'com.yanzhenjie:permission:1.0.4'

可以查看:链接

你可能感兴趣的:(安卓6.0权限简介)