Android FileProvider-使用默认的内部存储文件夹、文件路径
文件中说: 文件提供程序只能为中的文件生成内容URI 您预先指定的目录。要指定目录, 使用的子元素以XML形式指定its存储区域和路径 元素。例如,下面的paths元素告诉我们 您打算为图像请求内容URI的FileProvider/ 您的私有文件区域的子目录Android FileProvider-使用默认的内部存储文件夹、文件路径,android,Android,文件中说: 文件提供程序只能为中的文件生成内容URI 您预先指定的目录。要指定目录, 使用的子元素以XML形式指定its存储区域和路径 元素。例如,下面的paths元素告诉我们 您打算为图像请求内容URI的FileProvider/ 您的私有文件区域的子目录 <paths xmlns:android="http://schemas.android.com/apk/res/android"> <files-path name="my_images" path="images/
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<files-path name="my_images" path="images/"/>
... </paths>
...
如果我不想使用子目录,而是使用默认的internalstorage目录,该怎么办
路径
属性
当我在项目中使用它时,我得到“属性缺少Android名称空间前缀”
我不知道是什么给了你这个信息。如果它是一个IDE,它可能是IDE中的一个bug。从技术上讲,我们甚至不需要名称空间声明,尽管我们也有名称空间声明
我应该加上吗
不,不用它也可以。所以应该是这样吗?@J.K:对。就我个人而言,我用的是
东西
,而不是任何东西
:-)最后一件事-我需要在哪里使用我在文件路径中提供的名称(在我的情况下,无论如何,在你的情况下)?为什么你的文件提供者称为LegacyCompatFileProvider而不是android.support.v4.content.FileProvider?@J.K:因为我子类化了文件提供者
。有些不幸的开发人员认为所有内容://
Uri
值必须来自MediaStore
,并尝试使用不存在的\u data
列LegacyCompatFileProvider
覆盖query()
,并使用LegacyCompatCursorWrapper
提供一个空的\u数据
列,这提高了与其中一些应用程序的兼容性。在您的情况下(通过Android媒体API播放视频),这些都不需要。
<files-path name="my_images" path="images/"/>
<files-path name="my_docs" path="docs/"/>