首页 > 解决方案 > 为什么即使在 android:targetSdkVersion = "25" 中 Uri.fromFile 也没有问题?

问题描述

在 Android 应用程序中,

我听说我不应该使用Uri.fromFile以下targetSdkVersion >= 24链接:

这里

但我在以下情况下使用它没有任何崩溃:

android:targetSdkVersion = "25" , 安卓牛轧糖

 else if (requestCode > Constants.Uri_M4_Images_Camera_Filter)
        {
            if (resultCode == RESULT_OK)
            {

                Bitmap photo = (Bitmap) data.getExtras().get("data");

                Uri_M4_ViewPager_M4Image_Camera = Uri.fromFile(saveImage2(photo));

我可以Uri_M4_ViewPager_M4Image_Camera毫无问题地在毕加索中使用,为什么?

标签: android

解决方案


问题Uri.fromFile()在于将其传递UriIntent. 这将触发一个FileUriExposedException. 即使您破解了它,在 Android 10+ 上,其他应用程序也无法访问该文件。

在您自己的应用程序中使用Uri.fromFile()通常是不必要的。例如,毕加索可以使用File; 您无需将其转换为 aUri就可以让 Picasso 将其转换回来。但是,如果您真的想file Uri在自己的应用程序中使用 a,欢迎您这样做。只是不要将它传递给另一个应用程序。


推荐阅读