0

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

        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 musiccursor 每次都是空的,所以我们抛出一个空指针异常。知道这里有什么区别吗?我已经尝试过 temp 的编码版本(将空格转换为 %20 等),但这不起作用。我可以使用使用 temp2 创建的 uri 来播放歌曲,使用意图没问题...不确定我在这里缺少什么。

提前致谢!

4

1 回答 1

2

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

于 2011-07-15T22:36:03.493 回答