私のコードの動作が奇妙なことに気付き、誰かが光を当てることを望んでいます。Uri with File:///対話内容:// - 音楽ファイル情報を取得する
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を使用して、問題なしで曲を演奏することができます。ここでは何が欠けているのか分かりません。
ありがとうございます!
なぜコンテンツプロバイダを使用してファイルを取得していますか? –