美文网首页
权限管理踩过的坑

权限管理踩过的坑

作者: 码农朱同学 | 来源:发表于2018-10-10 17:17 被阅读0次

用到开源的一个权限管理库
https://github.com/yanzhenjie/AndPermission

1,系统6.0以上的手机,调用相机时,onGranted与onDenied都调用了

原因分析:相机调用时,拍的照片所放位置

 Intent intent;
        // 判断是否挂载了SD卡
        String savePath = "";
        String storageState = Environment.getExternalStorageState();
        if (storageState.equals(Environment.MEDIA_MOUNTED)) {
            savePath = Environment.getExternalStorageDirectory() + "/";
            File savedir = new File(savePath);
            if (!savedir.exists()) {
                savedir.mkdirs();
            }
        }

        // 没有挂载SD卡,无法保存文件
        if (CommonUtils.isNull(savePath)) {
            ToastTool.showToast("无法保存照片,请检查SD卡是否挂载");
            return;
        }

再次触发进入sd卡权限申请,所以又回调了onDenied方法


 // 6.0之上申请牌照和写入存储权限
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            AndPermission.with(Select_or_Picture_Activity.this).permission(Manifest.permission.CAMERA,Manifest.permission.WRITE_EXTERNAL_STORAGE)
                    .rationale(new DefaultRationale() )
                    .onGranted(new Action() {
                        @Override
                        public void onAction(List<String> permissions) {
                            System.out.println("---------有权限了");
                            Toast.makeText(Select_or_Picture_Activity.this,R.string.successfully,Toast.LENGTH_SHORT).show();
                        }
                    })
                    .onDenied(new Action() {
                        @Override
                        public void onAction(List<String> permissions) {
                            System.out.println("---------没有权限");
                            Toast.makeText(Select_or_Picture_Activity.this,R.string.failure,Toast.LENGTH_SHORT).show();
                            if (AndPermission.hasAlwaysDeniedPermission(Select_or_Picture_Activity.this, permissions)) {
                                mSetting.showSetting(permissions);
                            }
                        }
                    }).start();
        }else {
//            new getPic().execute(); // 获取图片

2,允许权限后,进入设置改为拒绝,又调用onGranted,但其实并没有授权

待续

相关文章

  • 权限管理踩过的坑

    用到开源的一个权限管理库https://github.com/yanzhenjie/AndPermission 1...

  • 角色权限管理实现

    前文《做程序员到现在踩过的坑》里我提到了角色权限管理,算算到现在自己已经在两家公司做过3个权限管理模块了,现在简单...

  • Appium踩坑之启动手机时候 error:exited wit

    (1) 踩过的坑 - exited with code 255 这个问题是由于手机权限没有完全开通,除了打开“US...

  • 交互设计师所要避免的几个坑

    前言 工作中难免会踩到几个坑,即使现在不踩以后还会踩,只有踩过才会深刻记住,踩过说明爱过!但是踩过的坑必须把坑填满...

  • vue踩过的坑

    vue踩过的坑

  • Docker Registry安装

    之前一直使用Nexus管理Docker镜像,后期发现Nexus对于Docker的支持并不是很完善,踩了许多坑(踩过...

  • D1094:踩坑的价值最大化

    是人就会踩坑,不踩坑理论上就不属于人类,踩坑是人之常情,能回头站在坑边反思,才是对踩过的的坑价值最大化的体现,要不...

  • 2021-03-03

    Android开发之运行时权限 身为安卓开发同学,一定少不了和权限打交道,在这里我将结合我踩过的坑对这部分开发知识...

  • App打包踩坑指南

    uni-app打包成app踩坑记录 1、 权限判断 (js文件已封装) 判断 相机、定位、推送 2、 以上权限需要...

  • 投资避坑指南

    2022年9月14日(第224天) 经常反思踩过的坑,犯过的错,了解别人踩过的坑,犯过的错,思考如何避免自己下次踩...

网友评论

      本文标题:权限管理踩过的坑

      本文链接:https://www.haomeiwen.com/subject/rncmaftx.html