0
点赞
收藏
分享

微信扫一扫

【Android】7.0系统解决拍照的问题android.os.FileUriExposedException:file:///storage/emulated/0/


 

 

FileProvider提供了一种解决办法,在Oncreate函数中

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

VM会忽略文件URI曝光。

builder.detectFileUriExposure()
启用文件曝光检查,如果我们没有设置VmPolicy,这也是默认行为。

我遇到一个问题,如果我使用a content:// URI发送东西,一些应用程序是无法理解的。并且不允许降级target SDK版本。在这种情况下,我的解决方案是有用的。

 

看了一下builder.detectFileUriExposure()源码:

不鼓励这种曝光,因为接收应用可能无法访问共享路径。 例如,接收应用可能没有请求{@link android.Manifest.permission#READ_EXTERNAL_STORAGE}运行时权限,或者平台可能跨用户配置文件边界共享{@link android.net.Uri}。 相反,应用程序应使用{@code content://} Uris,以便平台可以扩展接收应用程序访问资源的临时权限。

举报

相关推荐

android studio拍照功能问题解决

0 条评论