从Mediastore获取数据时的内部URI与外部URI的区别

4
希望有人能给我解释一下...我正在开发一个简单的视频播放器应用程序,可以播放存储在手机上的视频剪辑。
我看到的所有示例都是使用MediaStore.Video.Media.EXTERNAL_CONTENT_URI内容Uri来获取视频,类似这样的东西。
cursor = resolver.query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, cols, whereClause, null, sortOrder);

但这样不会限制列表只显示存储在SD卡上的文件吗?
新型安卓手机拥有大量内部存储空间 - 例如,三星Galaxy S通常配备16GB的内部存储和2GB的SD卡。
我应该使用外部内容URI和内部内容URI分别扫描MediaStore两次吗?
再次,我看到了10个音频和视频播放器的示例,它们全部仅使用外部存储。
甚至查看了原生音乐播放器的源代码,它也仅从外部卡中获取。
2个回答

9

我运行了一些测试,似乎答案取决于设备。在安卓模拟器和HTC mytouch上,它只会获取外部SD卡上的文件,但是在三星Galaxy S上,它也会从内部存储中提取。

这就是我对安卓最讨厌的部分 - 为什么简单的事情会有如此不同的情况。


外部存储和内部存储在可以访问的内容方面有所不同,而不是数据的物理位置。https://dev59.com/Pl0a5IYBdhLWcg3wJl2o#30655498 - Deepak

1
尝试使用MediaStore.Video.Media.INTERNAL_CONTENT_URI

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接