我正在按照本教程使用 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);
Cats萌萌
TA贡献1805条经验 获得超9个赞
我应该做些什么?
Service
是一个Context
。getUriForFile()
因此,如果您直接在 a 中调用Service
,请使用this
for the Context
。
添加回答
举报
0/150
提交
取消