android6.0动态获取权限
来源:互联网 发布:赢时胜软件上海分公司 编辑:程序博客网 时间:2024/06/09 23:42
/* 这里涉及到一个API,ContextCompat.checkSelfPermission,主要用于检测某个权限是否已经被授予,
方法返回值为PackageManager.PERMISSION_DENIED或者PackageManager.PERMISSION_GRANTED。
当返回DENIED就需要进行申请授权了。*/
/* 申请授权
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.READ_CONTACTS},
MY_PERMISSIONS_REQUEST_READ_CONTACTS);
该方法是异步的,第一个参数是Context;第二个参数是需要申请的权限的字符串数组;
第三个参数为requestCode,主要用于回调的时候检测。可以从方法名requestPermissions以及第二个参数看出,
是支持一次性申请多个权限的,系统会通过对话框逐一询问用户是否授权。*/
if(ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PermissionChecker.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},RQUESTCODE);
}
}
/* 处理权限申请回调*/
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(requestCode==RQUESTCODE){
if(grantResults[0]==PermissionChecker.PERMISSION_GRANTED){
//权限申请授权成功
}
}
方法返回值为PackageManager.PERMISSION_DENIED或者PackageManager.PERMISSION_GRANTED。
当返回DENIED就需要进行申请授权了。*/
/* 申请授权
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.READ_CONTACTS},
MY_PERMISSIONS_REQUEST_READ_CONTACTS);
该方法是异步的,第一个参数是Context;第二个参数是需要申请的权限的字符串数组;
第三个参数为requestCode,主要用于回调的时候检测。可以从方法名requestPermissions以及第二个参数看出,
是支持一次性申请多个权限的,系统会通过对话框逐一询问用户是否授权。*/
if(ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PermissionChecker.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},RQUESTCODE);
}
}
/* 处理权限申请回调*/
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(requestCode==RQUESTCODE){
if(grantResults[0]==PermissionChecker.PERMISSION_GRANTED){
//权限申请授权成功
}
}
}
/* 权限校验 */ public static void checkPermission(Activity activity){ if(Build.VERSION.SDK_INT>=23){ int readPhone=activity.checkSelfPermission(Manifest.permission.READ_PHONE_STATE); int receiveSms = activity.checkSelfPermission(Manifest.permission.RECEIVE_SMS); int readSms = activity.checkSelfPermission(Manifest.permission.READ_SMS); int readContacts = activity.checkSelfPermission(Manifest.permission.READ_CONTACTS); int readSdcard = activity.checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE); int requestCode = 0; ArrayList<String> permissions = new ArrayList<>(); if(readPhone != PackageManager.PERMISSION_GRANTED){ requestCode |= 1<<0; permissions.add(Manifest.permission.READ_PHONE_STATE); } if(receiveSms != PackageManager.PERMISSION_GRANTED){ requestCode |= 1<<1; permissions.add(Manifest.permission.RECEIVE_SMS); } if(readSms != PackageManager.PERMISSION_GRANTED){ requestCode |= 1<<2; permissions.add(Manifest.permission.READ_SMS); } if(readContacts != PackageManager.PERMISSION_GRANTED){ requestCode |= 1<<3; permissions.add(Manifest.permission.READ_CONTACTS); } if(readSdcard != PackageManager.PERMISSION_GRANTED){ requestCode |= 1<<4; permissions.add(Manifest.permission.READ_EXTERNAL_STORAGE); } if(requestCode>0){ String[] permission = new String[permissions.size()]; activity.requestPermissions(permissions.toArray(permission),requestCode); return; } }
0 0
- Android6.0动态获取权限
- android6.0动态获取权限
- android6.0动态获取权限
- Android6.0动态获取权限
- android6.0以上版本动态获取权限
- android6.0以后动态获取权限
- 关于android6.0动态获取权限
- Android6.0设备上动态获取权限
- android6.0动态获取权限库
- Android6.0系统动态获取权限<一>
- Android6.0动态权限获取详解
- Android6.0动态权限
- Android6.0动态权限
- Android6.0动态权限
- Android6.0动态权限
- android6.0动态权限
- Android6.0 动态权限
- android6.0动态权限
- 深度神经网络(DNN)模型与前向传播算法
- 29、文件操作--顺序文件的写操作
- 带图片的仿天猫导航栏
- JS 判断特殊字符
- 1 系统编程综述
- android6.0动态获取权限
- 动态规划之乘法游戏
- 哈希查找
- Java多线程基础问题
- [Nginx]实现反向代理(Windows版)
- 26.逻辑卷管理器(Logical Volume Manager)
- 【Hibernate】Hibernate对“悲观”和“乐观”锁的支持
- Spring4--Spring4整合mybatis3
- 关键字const有什么含义?