这些都被不同的应用程序使用。 Facebook与File Uris和Whatsapp共享内容Uris。如果我的应用可以分享视频和图片,我应该使用哪一个?
此外,如果我的应用应接受视频和图片,我应该准备哪种类型?如果对于两者,我应该将内容URI转换为文件Uri还是反过来?
答案 0 :(得分:0)
如果我的应用可以分享视频和图片,我应该使用哪一个?
在Android 7.0及更高版本中,您别无选择,只能使用content
Uri
进行分享,例如来自FileProvider
。
在Android 6.0及更早版本中,如果内容位于内部存储上,则还必须使用FileProvider
,因为第三方应用无权访问您的内部存储空间。如果内容位于外部存储设备上,您可以使用file
或content
。设备越旧,预安装的应用就越有可能只支持file
。
如果我的应用应该接受视频和图片,我应该准备哪种类型?
理想情况下,两者兼而有之。如果通过“接受”表示通过ACTION_SEND
,则您别无选择,只能支持两者。对于ACTION_VIEW
和Intent
这样的操作,Intent
的数据方面用于Uri
,请使用<data>
元素来宣传哪个方案( s)你支持。
我应该将内容URI转换为文件Uri还是反过来?
都不是。您使用其原始来源的内容。对于ContentProvider
和getType()
等内容,openInputStream()
支持这两种方案。