【发布时间】:2014-05-18 18:35:49
【问题描述】:
我正在使用以下示例尝试将 android 设备上保存的图像和视频加载到自定义画廊活动中:
Access ordered images and video in same Cursor
虽然这适用于使用默认 Android 相机应用创建的图像和视频,但它似乎无法找到本地保存在该应用专用文件夹中的媒体文件(位于 Pictures/Name_of_app 中)
如何获取设备上的所有媒体文件?
private String[] projection = {
MediaStore.Files.FileColumns._ID,
MediaStore.Files.FileColumns.DATA,
MediaStore.Files.FileColumns.DATE_ADDED,
MediaStore.Files.FileColumns.MEDIA_TYPE,
MediaStore.Files.FileColumns.MIME_TYPE,
MediaStore.Files.FileColumns.TITLE
}; // used for query ContentResolver for mediafiles
private String selection = MediaStore.Files.FileColumns.MEDIA_TYPE + "="
+ MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE
+ " OR "
+ MediaStore.Files.FileColumns.MEDIA_TYPE + "="
+ MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO; // used to select images and videos from contentResolver
private Uri queryUri = MediaStore.Files.getContentUri("external");
cl = new CursorLoader(CustomizedGallery.this, queryUri, projection, selection, null, MediaStore.Files.FileColumns.DATE_ADDED + " DESC");
【问题讨论】:
-
您能在图库应用中看到这些文件吗?您确定它们已添加到媒体商店吗?简单地创建它们不会自动将它们添加到媒体存储数据库中。 stackoverflow.com/questions/3300137/…
-
感谢您的链接。实际上,我在图库应用程序中看不到图像。所以我会查看链接,看看它是否有效。
-
我认为您也可以重新启动和/或重新安装您的设备作为触发媒体扫描器的快速方法。
-
我在应用程序中保存图像时添加了这一行,现在它们出现在图库中! sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(imageAddedOrDeleted)));您可以添加您的评论作为答案吗?我会把它标记为正确的。
标签: android image video gallery android-cursorloader