Android Mediastore.Audio.Media.DATA不返回任何内容
我尝试用光标和内容解析器列出所有音频文件,我得到歌曲标题、歌曲艺术家和Id,但问题是我无法获得路径,当我尝试在Toast中显示它时,它不会返回任何内容 谢谢你的帮助 以下是代码和我如何获得歌曲:Android Mediastore.Audio.Media.DATA不返回任何内容,android,Android,我尝试用光标和内容解析器列出所有音频文件,我得到歌曲标题、歌曲艺术家和Id,但问题是我无法获得路径,当我尝试在Toast中显示它时,它不会返回任何内容 谢谢你的帮助 以下是代码和我如何获得歌曲: ContentResolver musicResolver = this.getContentResolver(); Uri musicUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; Cursor musicCursor = mus
ContentResolver musicResolver = this.getContentResolver();
Uri musicUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor musicCursor = musicResolver.query(musicUri,
null,
null,
null,
MediaStore.Audio.Media.TITLE + " ASC");
if(musicCursor!=null && musicCursor.moveToFirst()){
//get columns
int idColumn = musicCursor.getColumnIndex(MediaStore.Audio.Media._ID);
int titleColumn = musicCursor.getColumnIndex(MediaStore.Audio.Media.TITLE);
int artistColumn = musicCursor.getColumnIndex(MediaStore.Audio.Media.ARTIST);
int pathColumn = musicCursor.getColumnIndex(MediaStore.Audio.Media.DATA);
//add songs to list
do {
long thisId = musicCursor.getLong(idColumn);
String thisTitle = musicCursor.getString(titleColumn);
String thisArtist = musicCursor.getString(artistColumn);
String thisPath = musicCursor.getString(pathColumn);
arrayChansons.add(new Chanson(thisId, thisTitle, thisArtist, thisPath));
}
while (musicCursor.moveToNext());
musicCursor.close();
您在哪里看到文档说明由
MediaStore.Audio.Media.DATA
指示的列将包含文件路径?(你可能是对的,我只是想了解细节。)我在这个论坛和这个链接上也看到了:这里写着:“int fileColumn=cursor.getColumnIndex(MediaStore.Audio.Media.DATA);第一个是包含实际音频文件路径的列的索引。我们通过传入表示该列的常量android.provider.MediaStore.audio.Media.DATA来获得上述索引“指定所需的列,而不是为列传入null
,看看这是否有帮助。我已经指定了我想要的列,但没有任何更改。您在哪里看到说明由MediaStore.Audio.Media.DATA
指示的列将包含文件路径的文档?(你可能是对的,我只是想了解细节。)我在这个论坛和这个链接上也看到了:这里写着:“int fileColumn=cursor.getColumnIndex(MediaStore.Audio.Media.DATA);第一个是包含实际音频文件路径的列的索引。我们通过传入表示该列的常量android.provider.MediaStore.audio.Media.DATA来获得上述索引“指定所需的列,而不是为列传入null
,看看这是否有帮助。我已经指定了我想要的列,但没有任何更改。