为了账号安全,请及时绑定邮箱和手机立即绑定

android.os.FileUriExposedException: 在 android.os.

android.os.FileUriExposedException: 在 android.os.

慕桂英4014372 2023-04-19 16:48:16
我正在按照本教程使用 FileProvider 而不是Uri.FromFile()但是我不确定如何在我的服务中使用 FileProvider。FileProvider.getUriForFile()需要第一个参数的上下文,但因为我在我的服务中使用它,所以我没有活动上下文。我应该做些什么?我需要改变这个:Uri swatchImageUri = Uri.fromFile(favoritesImageFile);对于他们上面的建议。这是我在不使用 FileProvider 的情况下遇到的当前异常:2019-07-23 23:04:42.748 11034-11034/com.company.projname E/AndroidRuntime: FATAL EXCEPTION: main    Process: com.company.projname, PID: 11034    android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/com.company.projname/cache/colors.png exposed beyond app through ClipData.Item.getUri()        at android.os.StrictMode.onFileUriExposed(StrictMode.java:1978)        at android.net.Uri.checkFileUriExposed(Uri.java:2371)        at android.content.ClipData.prepareToLeaveProcess(ClipData.java:963)        at android.content.Intent.prepareToLeaveProcess(Intent.java:10216)        at android.content.Intent.prepareToLeaveProcess(Intent.java:10222)        at android.content.Intent.prepareToLeaveProcess(Intent.java:10201)        at android.app.Instrumentation.execStartActivity(Instrumentation.java:1667)        at android.app.Activity.startActivityForResult(Activity.java:4586)
查看完整描述

2 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

诠释行:

 Uri swatchImageUri = FileProvider.getUriForFile(//,
                    BuildConfig.APPLICATION_ID + ".provider",
                    swatchImageFile);

将活动作为第一个参数传递:

 Uri swatchImageUri = FileProvider.getUriForFile(activity,
                BuildConfig.APPLICATION_ID + ".provider",
                swatchImageFile);


查看完整回答
反对 回复 2023-04-19
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

我应该做些什么?

Service是一个ContextgetUriForFile()因此,如果您直接在 a 中调用Service,请使用thisfor the Context


查看完整回答
反对 回复 2023-04-19
  • 2 回答
  • 0 关注
  • 121 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信