Caused by: android.os.FileUriExposedException: file:///sdcard/Image/20190606_081600.png exposed

Caused by: android.os.FileUriExposedException: file:///sdcard/Image/20190606_081600.png exposed
原因很明显,file:// 不被允许作为一个附加的 Uri 的意图,否则会抛出 FileUriExposedException 。

为什么file://再被允许,主要是因为安全的问题。

既然 file:// 不再被允许,那我们应该怎么处理呢?答案是通过 FileProvider 去解决它。
之所以使用FileProvider,是因为从Android7.0系统开始,直接使用本地真实路径的Uri被认为是不安全的,会抛出FileUriExposedException 异常。而FileProvider则是一种特殊的内容提供其,它使用了和内容提供器类似的机制来对数据进行保护,可以选择性地将封装过的Uri共享给外部,从而提高了应用的安全性。