Android动态权限判断以及动态权限申请
来源:互联网 发布:js如何获取单选框的值 编辑:程序博客网 时间:2024/06/05 11:44
首先查看权限是否授予:
官网代码
// Assume thisActivity is the current activityint permissionCheck = ContextCompat.checkSelfPermission(thisActivity,Manifest.permission.WRITE_CALENDAR);
其中,如果已经注册权限,此方法会返回一个int值
PackageManager.PERMISSION_GRANTED
,此值为1.如果没有申请权限,将返回PackageManager.PERMISSION_DENIED,值为-1.
动态注册权限:
// 首先是判断if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) { // Should we show an explanation? if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity, Manifest.permission.READ_CONTACTS)) { // 显示给用户的解释 } else { // No explanation needed, we can request the permission. ActivityCompat.requestPermissions(thisActivity, new String[]{Manifest.permission.READ_CONTACTS}, MY_PERMISSIONS_REQUEST_READ_CONTACTS); }}
其中,ActivityCompat.shouldShowRequestPermissionRationale(thisActivity, Manifest.permission.READ_CONTACTS)方法用于判断是否该给用户一个解释为何需要打开此权限。如果已经请求过此权限并且用户拒绝,将返回true。
注意:如果用户在过去拒绝了权限请求,并在“权限请求系统”对话框中选择“不再次请求”选项,则此方法返回false。如果设备策略禁止应用程序具有该权限,该方法也会返回false。new String[]{Manifest.permission.READ_CONTACTS}为你要申请的权限数组
MY_PERMISSIONS_REQUEST_READ_CONTACTS为自定义的一个标记变量,以便在后续操作中判断。
。。。。。
当用户对弹出的提示框进行了操作时,将会回调
onRequestPermissionsResult()
方法,因此可以在此方法中进行相关操作。
@Overridepublic void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case MY_PERMIEAD_CONTACTS: { // If request is cancelled, the result arrays are empty. if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {// 权限请求成功的操作 } else { // 权限请求失败的操作 } return; } // case其他权限结果。。 }}最后,还有一些需要注意的地方,例如,假如用户已经明确的指明拒绝该权限申请并不再提示,这时候就不应该再做任何与用户的
交互。
0 0
- Android动态权限判断以及动态权限申请
- android权限动态判断申请与注册
- android 动态申请权限
- Android 动态申请权限
- android 动态申请权限
- Android动态权限申请
- Android动态申请权限
- Android动态申请权限
- android动态申请权限
- android 动态权限申请
- Android动态权限申请
- Android权限动态申请
- Android权限动态申请
- Android动态申请权限
- Android 6.0 动态申请权限
- android M 动态申请权限
- android 6.0权限动态申请
- Android 6.0 动态权限申请
- js操作 cookie
- 单例模式
- 完全卸载干净MySQL
- linux系统下(x86_64)安装jdk 1.6(jdk-6u45-linux-x64.bin)
- Spring4MVC+Spring4+Hibernate4整合系列--(二)StepByStep2
- Android动态权限判断以及动态权限申请
- Apache kylin安装配置
- 5.3.2
- NSArray
- Android工具类(时间转换)
- 决策树算法(一)
- 深入理解Java:注解(Annotation)自定义注解入门
- 图解CSS中的绝对定位与相对定位
- Intrrupt的使用说明