MultiImageSelector icon indicating copy to clipboard operation
MultiImageSelector copied to clipboard

fix:android 7.0 相机权限问题FILEPROVIDER

Open jiangm93 opened this issue 7 years ago • 3 comments

android 7.0 手机点击照相崩溃

jiangm93 avatar Apr 27 '17 09:04 jiangm93

希望楼主更新一下,API>23过后会报错

zjianflys avatar Sep 14 '17 09:09 zjianflys

/** * 选择相机 */ private void showCameraAction() { // 跳转到系统照相机 int currentapiVersion = android.os.Build.VERSION.SDK_INT; Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); if (cameraIntent.resolveActivity(getActivity().getPackageManager()) != null) { // 设置系统相机拍照后的输出路径 // 创建临时文件 try { mTmpFile = FileUtils.createTmpFile(getActivity()); } catch (IOException e) { e.printStackTrace(); } if (mTmpFile != null && mTmpFile.exists()) { if (currentapiVersion < 24) { // 从文件中创建uri cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mTmpFile)); } else { //兼容android7.0 使用共享文件的形式 ContentValues contentValues = new ContentValues(1); contentValues.put(MediaStore.Images.Media.DATA, mTmpFile.getAbsolutePath()); Uri uri = getActivity().getApplication().getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues); cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri); } startActivityForResult(cameraIntent, REQUEST_CAMERA); } else { Toast.makeText(getActivity(), "图片错误", Toast.LENGTH_SHORT).show(); }

    } else {
        Toast.makeText(getActivity(), R.string.msg_no_camera, Toast.LENGTH_SHORT).show();
    }
}

huizai0613 avatar Oct 31 '17 09:10 huizai0613

来一个简单粗暴的解决办法:

http://blog.csdn.net/huangxiaoguo1/article/details/52830015?locationNum=2&fps=1

在Application的onCreat()方法中添加以下代码:

       // android 7.0系统解决拍照的问题
        StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
        StrictMode.setVmPolicy(builder.build());
        builder.detectFileUriExposure(); 

gdky005 avatar Jan 08 '18 08:01 gdky005