MultiImageSelector icon indicating copy to clipboard operation
MultiImageSelector copied to clipboard

android.os.FileUriExposedException in android 7.0+

Open daksheshvira opened this issue 7 years ago • 4 comments

Please solve this problem which is causing after the 7.0 release. In 7.0+ Uri.fromFile is not working and giving the error android.os.FileUriExposedException. This can be solved by changing Uri.fromFile to FileProvider.getUriForFile. The issue occurs when we are taking picture.

Below is the full error :

android.os.FileUriExposedException: file:///storage/emulated/0/DCIM/IMG_1390008869.jpg exposed beyond app through ClipData.Item.getUri() at android.os.StrictMode.onFileUriExposed(StrictMode.java:1813) at android.net.Uri.checkFileUriExposed(Uri.java:2360) at android.content.ClipData.prepareToLeaveProcess(ClipData.java:832) at android.content.Intent.prepareToLeaveProcess(Intent.java:8957) at android.content.Intent.prepareToLeaveProcess(Intent.java:8942) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1583) at android.app.Activity.startActivityForResult(Activity.java:4228) at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:50) at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:79) at android.support.v4.app.ActivityCompatJB.startActivityForResult(ActivityCompatJB.java:30) at android.support.v4.app.ActivityCompat.startActivityForResult(ActivityCompat.java:146) at android.support.v4.app.FragmentActivity.startActivityFromFragment(FragmentActivity.java:937) at android.support.v4.app.FragmentActivity$HostCallbacks.onStartActivityFromFragment(FragmentActivity.java:1047) at android.support.v4.app.Fragment.startActivityForResult(Fragment.java:959) at android.support.v4.app.Fragment.startActivityForResult(Fragment.java:948) at me.nereo.multi_image_selector.MultiImageSelectorFragment.showCameraAction(MultiImageSelectorFragment.java:321) at me.nereo.multi_image_selector.MultiImageSelectorFragment.access$400(MultiImageSelectorFragment.java:56) at me.nereo.multi_image_selector.MultiImageSelectorFragment$2.onItemClick(MultiImageSelectorFragment.java:162) at android.widget.AdapterView.performItemClick(AdapterView.java:310) at android.widget.AbsListView.performItemClick(AbsListView.java:1155) at android.widget.AbsListView$PerformClick.run(AbsListView.java:3146) at android.widget.AbsListView$3.run(AbsListView.java:4061) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6123) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)

daksheshvira avatar Apr 03 '17 14:04 daksheshvira

同样的错误啊。

umeitime avatar Sep 07 '17 06:09 umeitime

Same error.

dfana01 avatar Dec 19 '17 14:12 dfana01

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

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

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

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(); 

亲测有效,Android Q

dimoge avatar Oct 21 '19 10:10 dimoge