我正试图找到一种通过uri在媒体库中查询单个文件的方法。我有一个uris列表,我想在我的应用程序中提供其他信息。
如: 内容://媒体/外部/音频/媒体/ 10
或
文件:///sdcard/media/audio/sample.mp3
这是我正在解决的代码。我不确定应该是什么ID?
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);
提前致谢。
答案 0 :(得分:2)
好吧,我想出了这个。这是我所追求的信息的链接:
http://developer.android.com/guide/topics/providers/content-providers.html
以下是完成任务的代码:
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);
}
答案 1 :(得分:1)
没有必要为一列提供所有内容。试试这个:
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);
}