android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/com.xygame.apps/cache/IMG1120583907.tmp exposed beyond app through ClipData.Item.getUri()

 

调用系统拍照时报错:

android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/com.xygame.apps/cache/IMG1120583907.tmp exposed beyond app through ClipData.Item.getUri()
at android.os.StrictMode.onFileUriExposed(StrictMode.java:1847)
at android.net.Uri.checkFileUriExposed(Uri.java:2346)
at android.content.ClipData.prepareToLeaveProcess(ClipData.java:832)
at android.content.Intent.prepareToLeaveProcess(Intent.java:9008)
at android.content.Intent.prepareToLeaveProcess(Intent.java:8993)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1525)
at android.app.Activity.startActivityForResult(Activity.java:4261)
at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:50)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:79)
at android.app.Activity.startActivityForResult(Activity.java:4220)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:859)
at com.xygame.apps.chat.activity.ChatActivity.sendPhoto(ChatActivity.java:337)
at com.tencent.qcloud.ui.ChatInput.onClick(ChatInput.java:327)
at android.view.View.performClick(View.java:5727)
at android.view.View$PerformClick.run(View.java:22762)
at android.os.Handler.handleCallback(Handler.java:836)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6412)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1113)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:974)

 

 

解决办法:

StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
StrictMode.setVmPolicy(builder.build());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
builder.detectFileUriExposure();
}

偶然中尝试这个可以解决问题,具体报错为什么我还在研究,暂时记录下来
posted @ 2018-08-16 15:28  zx巴拉  阅读(5831)  评论(0编辑  收藏  举报