内容Uri与文件Uri:将来要使用什么?

mAx*_*mAx 5 android file-permissions android-contentprovider file-uri android-6.0-marshmallow

我正在开发一个Android相机应用程序,我们在几个场景中使用uris,例如将结果数据从我们的相机传送回启动我们的应用程序结果,或者当用户点击共享按钮时打开IntentChooser.

目前我们在大多数情况下使用File Uris,因为它似乎是更安全的解决方案.使用ContentResolver和MediaStore总会出现问题.此外我记得前段时间有很多应用程序,它们不支持内容Uris,但文件Uris非常好.

但是,当用户决定不在Android 6.0上提供"环聊"文件访问权限时,我们现在通过Google邮寄了与File Uris一起发送不允许其"环聊"应用访问该文件的文件.

我现在的问题是:在向其他应用程序提供内容时,我们通常是否应该从File Uris切换到Content Uris?这是要走的路,每个应用都应该依赖/支持内容Uris吗?

zma*_*ies 5

是的,内容 URL 是要走的路。

对于相机应用程序,我不确定文件 url 是否非常合理 - 将文件传递给调用应用程序后,您怎么知道何时可以删除文件?使用内容 url,调用应用程序通过该 url 请求数据,并且当您提供它时,您可以释放您的资源副本。(如果应用程序想要“永久”访问通过内容 url 访问的数据,则由它自己保存该数据)。