Uri with File:/// vs Content:// - 检索音乐文件信息

时间:2011-07-15 21:34:51

标签: android uri media mediastore

我注意到我的代码行为有些奇怪,我希望有人可以解释一下。

        String temp = "file:///sdcard/music/05 Folsom Prison Blues.mp3";
        String temp2 = "content://media/external/audio/media/10";

        Uri uri = Uri.parse(temp);

        Cursor musiccursor = null;
        musiccursor = managedQuery(uri, null, null, null, null);

        try {
        if (musiccursor.moveToFirst()) {
            String title; 
            int titleColumn = musiccursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE); 
                title = musiccursor.getString(titleColumn);
            item.setText(title);
        }

我注意到的问题是,在temp2一切正常的情况下,我能够获得这首歌的标题。但是每次temp tempcursor都为null,所以我们抛出一个nullpointerexception。知道这里有什么不同吗?我已经尝试了temp的编码版本(将空格转换为%20等),但这不起作用。我可以使用用temp2创建的uri使用意图播放歌曲没问题...不确定我在这里缺少什么。

提前致谢!

1 个答案:

答案 0 :(得分:1)

file://不是由内容提供商管理的方案(仅content://是),因此ContentResolver将无法对其执行任何操作。