現在、次のコードを使用して、SD カード上の特定のオーディオ ファイル名 (mymusic1.mp3 など) を検索しています。
private String[] getAudioPath(String songTitle) {
final Cursor mCursor = getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
new String[] { MediaStore.Audio.Media.DISPLAY_NAME, MediaStore.Audio.Media.DATA },
MediaStore.Audio.Media.TITLE+ "=?",
new String[] {songTitle},
"LOWER(" + MediaStore.Audio.Media.TITLE + ") ASC");
int count = mCursor.getCount();
String[] songs = new String[count];
String[] mAudioPath = new String[count];
int i = 0;
if (mCursor.moveToFirst()) {
do {
songs[i] = mCursor.getString(mCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME));
mAudioPath[i] = mCursor.getString(mCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
i++;
} while (mCursor.moveToNext());
}
mCursor.close();
return mAudioPath;
}
ただし、これを変更して、SD カードだけでなくデバイス全体を検索するだけでなく、曲のファイル名を検索するのではなく、「Let It Be」というタイトルの曲を検索する必要があります。
getContentResolver().query() を微調整して、デバイス全体を検索し、曲のタイトル メタデータを検索しようとしましたが、あまり成功しませんでした。これは可能ですか?
ありがとうございました!