我注意到我的代码行为有些奇怪,我希望有人可以解释一下。
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使用意图播放歌曲没问题...不确定我在这里缺少什么。
提前致谢!
答案 0 :(得分:1)
file://
不是由内容提供商管理的方案(仅content://
是),因此ContentResolver
将无法对其执行任何操作。