先在AndroidManifest中获取一次权限

     

<!--拍照-->
         <uses-permission android:name="android.permission.CAMERA" />
         <!--写入SD卡的权限:如果你希望保存相机拍照后的照片-->
         <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
         <!--读取SD卡的权限:打开相册选取图片所必须的权限-->
         <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
         <!--网络-->
         <uses-permission android:name="android.permission.INTERNET"/>之后,在MAinactivity的oncreate中调用以下函数。
    
             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {//版本判断
                 if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
                     ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,
                             Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.CAMERA}, 1);
                 }
             }
        
      
     //一个权限没有,就一次申请所有所需的权限,这样可以在打开应用的时候获得所有权限除外,相机的打开还需要三行代码。见下
        StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
                 StrictMode.setVmPolicy(builder.build());
                 builder.detectFileUriExposure();            //7.0拍照必加