安卓申请权限
2016-10-26 11:28
162 查看
因为安卓6.0以上默认没有任何权限,所以为了解决这个问题,首次应用启动的时候应该去申请权限
1.判断当前安卓版本是否在安卓6.0以上
2.找到当前没有被授权的权限
3.如果还有没有被授权的权限,则申请权限
1.判断当前安卓版本是否在安卓6.0以上
public static boolean isOverMarshmallow() { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M; }
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { //申请WRITE_EXTERNAL_STORAGE权限 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 0); }
2.找到当前没有被授权的权限
@TargetApi(value = Build.VERSION_CODES.M) public static List<String> findDeniedPermissions(Activity activity, String... permission) { List<String> denyPermissions = new ArrayList<>(); for (String value : permission) { if (activity.checkSelfPermission(value) != PackageManager.PERMISSION_GRANTED) { denyPermissions.add(value); } } return denyPermissions; }
3.如果还有没有被授权的权限,则申请权限
if (deniedPermissions.size() > 0) { if (object instanceof Activity) { ((Activity) object).requestPermissions(deniedPermissions.toArray(new String[deniedPermissions.size()]), requestCode); } else if (object instanceof Fragment) { ((Fragment) object).requestPermissions(deniedPermissions.toArray(new String[deniedPermissions.size()]), requestCode); } else { throw new IllegalArgumentException(object.getClass().getName() + " is not supported"); } 在activity或者fragemnt重写onRequestPermissionsResult方法,可以查看当前授权结果 如果用户拒绝授权,可以重新申请。
相关文章推荐
- 安卓权限申请
- 安卓动态申请拍照权限,记录一下
- 安卓6.0+动态权限申请
- 安卓开发tips申请权限 没权限打电话存文件啥都干不了
- 安卓权限申请,兼容处理
- 关于android安卓的wifi功能使用需要申请的权限和管理类
- 安卓系统权限申请列表
- 安卓动态申请权限在Fragment无法回调的问题
- 安卓 权限申请
- 安卓动态申请权限
- 安卓开发——Android6.0动态权限申请步骤以及需要注意的一些坑
- 安卓学习笔记--- Android 6.0运行时权限的申请使用及EasyPermissions的使用
- 安卓·动态权限申请
- 安卓四大组件-内容提供器-1_程序运行时申请权限
- 在安卓4.2.2的系统上,具有系统权限的应用不能读写SD卡
- Android 6.0 权限的申请 与 封装
- Android 6.0运行时权限解析与申请
- 关于安卓调用相机有关知识(含6.0新增权限使用)
- Android 6.0权限申请明细
- 安卓权限大全