私は自分のコードの振る舞いについて何か奇妙なことに気づき、誰かが光を当てることができることを望んでいます。
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を使用するとすべてが正常に実行され、曲のタイトルを取得できることです。ただし、一時的にmusiccursorは毎回nullになるため、nullpointerexceptionをスローします。ここでの違いは何ですか?エンコードされたバージョンのtemp(スペースを%20などに変換)を試しましたが、機能しません。temp2で作成されたURIを使用して、問題なくインテントを使用して曲を再生できます...ここで何が欠けているのかわかりません。
前もって感謝します!