Android 中 File.toURI 与 Uri.fromFile 之间有什么区别

sit*_*sys 5 android

当尝试使用相机意图获取图片时,如文档中所述。我已经添加了所需的MediaStore.EXTRA_OUTPUT额外内容,但问题是它没有将文件保存在我想要的位置。所以我更仔细地阅读了文档,并将其与我正在做的事情进行了比较(因为我没有盲目地复制/粘贴提供的示例代码),并发现我正在使用

intent.putExtra(MediaStore.EXTRA_OUTPUT, myFile.toURI());
Run Code Online (Sandbox Code Playgroud)

代替

intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(myFile));
Run Code Online (Sandbox Code Playgroud)

第二个版本运行得很好,但我不明白为什么。这两种方法的文档都没有说明与两者之间的不兼容性相关的任何内容。

两者不应该给出相同的结果,还是我错过了细微的差别?

Gui*_*rré 2

Uri.fromFile() 和 file.toURI() 生成的内容不一样......

对于位于 SD 卡上的同一文件“f”。

“f.toURI()”会将其添加到您的捆绑包中{output=file:/mnt/sdcard/Gp/Gp.db}

和“Uri.fromFile(f)”将添加{output=file:///mnt/sdcard/Gp/Gp.db}