Skip to content

Instantly share code, notes, and snippets.

@bingoogolapple
Last active August 29, 2015 14:08
Show Gist options
  • Save bingoogolapple/251d6fb66f2b5d713086 to your computer and use it in GitHub Desktop.
Save bingoogolapple/251d6fb66f2b5d713086 to your computer and use it in GitHub Desktop.
public class MediaScanner {
private static String AUDIO_PATH = MediaStore.Audio.AudioColumns.DATA;
private static String AUDIO_DISPLAYHNAME = MediaStore.Audio.AudioColumns.DISPLAY_NAME;
private static String AUDIO_COLUMN_STRS[] = { AUDIO_PATH, AUDIO_DISPLAYHNAME };
private static String VIDEO_PATH = MediaStore.Video.VideoColumns.DATA;
private static String VIDEO_DISPLAYHNAME = MediaStore.Video.VideoColumns.DISPLAY_NAME;
private static String VIDEO_COLUMN_STRS[] = { VIDEO_PATH, VIDEO_DISPLAYHNAME };
private static String IMAGE_PATH = MediaStore.Images.ImageColumns.DATA;
private static String IMAGE_DISPLAYHNAME = MediaStore.Images.ImageColumns.DISPLAY_NAME;
private static String IMAGE_COLUMN_STRS[] = { IMAGE_PATH, IMAGE_DISPLAYHNAME };
private MediaScanner() {
}
public static List<MediaFile> scanAudio() {
return scanMedia(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, AUDIO_COLUMN_STRS, AUDIO_DISPLAYHNAME, AUDIO_DISPLAYHNAME, AUDIO_PATH);
}
public static List<MediaFile> scanVideo() {
return scanMedia(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, VIDEO_COLUMN_STRS, VIDEO_DISPLAYHNAME, VIDEO_DISPLAYHNAME, VIDEO_PATH);
}
public static List<MediaFile> scanImage() {
return scanMedia(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, IMAGE_COLUMN_STRS, IMAGE_DISPLAYHNAME, IMAGE_DISPLAYHNAME, IMAGE_PATH);
}
public static List<MediaFile> scanMedia(Uri uri, String[] projection, String sortOrder, String nameColumn, String pathColumn) {
List<MediaFile> results = new ArrayList<MediaFile>();
Cursor cursor = App.getInstance().getContentResolver().query(uri, projection, null, null, sortOrder);
if (cursor != null && cursor.getCount() != 0) {
int nameIndex = cursor.getColumnIndexOrThrow(nameColumn);
int dirIndex = cursor.getColumnIndexOrThrow(pathColumn);
while (cursor.moveToNext()) {
results.add(new MediaFile(cursor.getString(nameIndex), cursor.getString(dirIndex)));
}
cursor.close();
}
return results;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment