0

我正在尝试找到一种方法来通过 uri 查询媒体存储中的单个文件。我有一个 uris 列表,我想在我的应用程序中提供更多信息。

如:content://media/external/audio/media/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);

提前致谢。

4

2 回答 2

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);
}   
于 2011-07-15T15:44:25.373 回答
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);
}   
于 2012-03-22T21:20:55.513 回答