Я заметил что-то странное в поведении моего кода и надеюсь, что кто-нибудь сможет пролить свет.
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 каждый раз равен нулю, поэтому мы бросаем nullpointerexception. Есть идеи, какая здесь разница? Я пробовал закодированную версию temp (конвертирует пробелы в% 20 и т. Д.), И это не работает. Я могу использовать URI, созданный с помощью temp2, чтобы воспроизвести песню, используя намерение без проблем ... Не уверен, что мне здесь не хватает.
Заранее спасибо!