Android6.0以上权限获取权限的问题

原创 2016年08月31日 14:28:24
  今天把 targetSdkVersion 从22 换成23  项目里面有一个录视频的应用
   直接启动  在 targetSdkVersion>=23 里面 拍摄视频的代码 就报错了。 
   需要判断权限 。   
   1.把需要判断的权限列出来
    final String[] PERMISSIONS = new String[]{
        Manifest.permission.CAMERA,
        Manifest.permission.RECORD_AUDIO
     };
   2.去看看 权限是否有打开
          ActivityCompat.requestPermissions(htmlActivity, PERMISSIONS, BURNE_VIDEO);
    3.权限回调
  public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[]      grantResults) {
        // 判断是否有权限 

        if (requestCode == BURNE_VIDEO && hasAllPermissionsGranted(grantResults)) {

           //有权限 去启动Video

            startVideo();

        } else {

            //去打开权限   

            showPermissionDialog();
        }
    }
   4判断有没有权限
    private boolean hasAllPermissionsGranted(int[] grantResults) {
        for (int grantResult : grantResults) {
                
                PackageManager.PERMISSION_GRANTED  //有权限   PackageManager.PERMISSION_DENIED无权限
             if (grantResult == PackageManager.PERMISSION_DENIED) {
                return false;
            }
        }
        return true;

    }

    4.弹出对话框 让 用户去设置 权限

    private void showPermissionDialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(htmlActivity);
        builder.setTitle("帮助");
        builder.setMessage("当前应用缺少相机权限或者录音权限。请点击\"设置\"-打开所需权限。");
        // 拒绝, 退出应用
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        });


        builder.setPositiveButton("设置", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                startAppSettings();
                dialog.dismiss();
            }
        });
        builder.setCancelable(false);
        builder.show();
    }


   以上就是 Android6.0系统判断有没有权限

    Android 6.0一下 直接启动相机

    但是在魅族手机上面在没有权限的时候报错

  at android.hardware.Camera.setHasPreviewCallback(Native Method)
08-31 14:32:03.465 29135-29135/com.badianban.hidate W/System.err:     at android.hardware.Camera.setPreviewCallback(Camera.java:951)

   用来判断 是否可以启动相机

private boolean isCamera() {
        boolean isCanUse = true;
        Camera mCamera = null;
        try {
            mCamera = Camera.open();
            if (mCamera != null) {


                Camera.Parameters mParameters = mCamera.getParameters();
                mParameters.set("orientation", "portrait");
                mCamera.setParameters(mParameters);
            }
        } catch (Exception e) {
            e.printStackTrace();
            isCanUse = false;


        }
        try {
            if (mCamera != null) {
                mCamera.release();
            }
        } catch (Exception emCamera) {
            emCamera.printStackTrace();
        }
        return isCanUse;

    }


private boolean setCameraParams() {
        boolean isCanUse = true;
        Camera mCamera = null;
        try {
            mCamera = Camera.open();
            if (mCamera != null) {


                Camera.Parameters mParameters = mCamera.getParameters();
                mParameters.set("orientation", "portrait");
                mCamera.setParameters(mParameters);
            }
        } catch (Exception e) {
            e.printStackTrace();
            isCanUse = false;


        }
        try {
            if (mCamera != null) {
                mCamera.release();
            }
        } catch (Exception emCamera) {
            emCamera.printStackTrace();
        }
        return isCanUse;
    }

Android 6.0 申请权限

Android 6.0 权限

Android6.0以上权限管理问题(权限被拒绝后)

Android6.0添加了运行时权限,用户可以在已安装的app上立刻同意或者拒绝权限,那么就意味着我们在使用APP的时候,当一个app会使用一些危险权限的时候就会提示用户是否授权.新的权限机制更好的保...
  • dailog
  • dailog
  • 2017年04月13日 17:02
  • 4270

解决Android拍照6.0以上动态获取权限问题

概述 在Android开发过程中,拍照或者从相册中选择图片是很常见的功能。下面要说得这个案例比较简单,用户点击按钮选择拍照或者打开相册选择图片,然后将选中的图片显示在手机上。android6.0...

Android6.0的权限管理(相机权限的举例)

android的权限管理!

魅族 Android 6.0 以上系统获取相机权限的坑

项目出现了一个魅族手机打开相机崩溃的日志,一番查找,在相机打开那里,做了是否为 null 的判断。。不过。。 魅族拒绝相机权限时 Camera.open() 返回的不是 null ,也就是说接下来的其...
  • lnkywd
  • lnkywd
  • 2017年05月03日 12:03
  • 896

EL表达式在JSP界面中取不到值问题。

今天写jsp页面,刚研究EL表达式,然后都取不出值。后来。。终于。。。解决了。 老手可以飘过,给遇到问题的朋友,提供点资料,希望有用。 在JSP界面中加上一句代码: 只需要在JSP中加入一句代码...

JAVA解析PDF之IText

public static void main(String[] args) { System.out.println("ImageSequence"); ...

Android6.0极其以上系统获取Dangerous系统权限问题及其解决方案

开发过程当中遇到一个问题,就是好好的app在Android6.0系统的五儿子里进去就闪退,看了一下logcat表明时WRITE_EXTERNAL_STORAGE权限获取不到造成的,but在Androi...

Android处理6.0获取权限问题的第三方框架------开源项目-Easypermissions

本人昨天要实现 手机拍照,相册选择功能的实现,  本以为很简单,把以前的代码拷贝过来就可以咯,但是在 6.0手机测试中,发现  点击手机拍照,直接崩溃咯。连错误信息都没提示。  特别烦人。  后来听朋...

关于Android6.0以上动态获取运行时权限、及无法正常运行百度地图API的问题

Google早在Android6.0的时候就全面修改了应用程序的权限申请机制,除了需要在AndroidManifest.xml配置文件中事先做好权限配置之外,部分被认为是危险的系统权限还需要在代码中专...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android6.0以上权限获取权限的问题
举报原因:
原因补充:

(最多只允许输入30个字)