无法使用Mediastore实现扫描歌曲的代码

时间:2014-01-04 14:53:50

标签: android android-cursor mediastore

我正在尝试将此代码实现到我使用this教程制作的音乐播放器中。我需要使用“MediaStore”来实现此代码来扫描SD卡中的所有音乐文件。

public class SongsManager {
// SDCard Path
private ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();
public ArrayList<HashMap<String, String>> getPlayList(){
Cursor cursor = resolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, new String [] {"ARTIST", "DURATION", "TITLE", "_DATA", "ALBUM"}, null, null, null);
    while(cursor.moveToNext()) {
    HashMap<String, String> song = new HashMap<String, String>(); 
    song.put("artist", cursor.getString(0));
    song.put("duration", cursor.getString(1));
    song.put("songTitle", cursor.getString(2));
    song.put("songPath",cursor.getString(3));
    song.put("album",cursor.getString(4));
    // Adding each song to SongList
    songsList.add(song);
    }
    return songsList;
    }}

基本上我无法在这一行上解决几个错误:

Cursor cursor = resolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, new String [] {"ARTIST", "DURATION", "TITLE", "_DATA", "ALBUM"}, null, null, null);

错误是:

  

此行有多个标记      - 解析器无法解析      - 光标无法解析为类型

“光标无法解析为类型”部分没有Quickfix,但是对于解析器部分,Quickfixes包括

  • 创建本地变量'resolver'
  • 创建字段'解析器'
  • 创建参数'resolver'
  • 创建课程'解析器'
  • 创建常量'解析器'
  • 并且几乎没有什么改变(s)..

我搜索并尝试了网络上几乎所有与我的问题相关的解决方案,但它对我不起作用。所以我必须在这里提出这个问题。而且我承认我并不擅长这个,所以我请求请回答一下,像我这样的菜鸟没有问题从你的答案中实现代码。

1 个答案:

答案 0 :(得分:0)

resolver大概应该是ContentResolver。通常情况下,您可以通过在某些getContentResolver()上调用Context来获取其中一个,例如Activity