Reputation: 95
I'm trying to find a way to query the mediastore for individual files via a uri. I have a list of uris, for which I would like to provide additional info in my app.
Such as: content://media/external/audio/media/10
or
file:///sdcard/media/audio/sample.mp3
Here's the code I'm working around. I'm not sure what id should be?
String[] cols = new String[] {
MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.DATA,
MediaStore.Audio.Media.TITLE
};
String where = MediaStore.Audio.Media._ID + "=" + id;
String[] proj = { MediaStore.Audio.Media._ID, MediaStore.Audio.Media.DATA, MediaStore.Audio.Media.DISPLAY_NAME, MediaStore.Video.Media.SIZE, MediaStore.Audio.Media.ALBUM };
Cursor musiccursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, proj, null, cols, null);
Thanks in advance.
Upvotes: 0
Views: 3263
Reputation: 811
There's no need to get everything for one column. Try this:
Uri uri = Uri.parse("content://media/external/audio/media/10");
String[] columns = new String[] {MediaStore.Audio.Media.TITLE};
Cursor musiccursor = managedQuery(uri, columns, null, null, null);
if (musiccursor.moveToFirst()) {
String title = musiccursor.getString(0);
}
Upvotes: 1
Reputation: 95
Alright, I figured this one out. Here's a link to the info I was after:
http://developer.android.com/guide/topics/providers/content-providers.html
And here's the code that gets it done:
Uri uri = Uri.parse("content://media/external/audio/media/10");
Cursor musiccursor = managedQuery(uri, null, null, null, null);
if (musiccursor.moveToFirst()) {
String title;
int titleColumn = musiccursor.getColumnIndex(MediaStore.Audio.Media.TITLE);
title = musiccursor.getString(titleColumn);
}
Upvotes: 2