// Query for Songs private ArrayList<SongItem> queryForSongs( Uri uri, String[] projection, String selection, String[] args, String sortOrder) { Cursor cur = mCR.query(uri, projection, selection, args, sortOrder); if (cur == null) { return null; } if (!cur.moveToFirst()) { return null; } ArrayList<SongItem> list = new ArrayList<SongItem>(); int idColumn = cur.getColumnIndex(MediaStore.Audio.Media._ID); int titleColumn = cur.getColumnIndex(MediaStore.Audio.Media.TITLE); int artistColumn = cur.getColumnIndex(MediaStore.Audio.Media.ARTIST); int artistIDColumn = cur.getColumnIndex(MediaStore.Audio.Media.ARTIST_ID); int albumColumn = cur.getColumnIndex(MediaStore.Audio.Media.ALBUM); int albumIDColumn = cur.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID); int durationColumn = cur.getColumnIndex(MediaStore.Audio.Media.DURATION); int dataColumn = cur.getColumnIndex(MediaStore.Audio.Media.DATA); do { SongItem si = new SongItem(); si.id = cur.getLong(idColumn); si.title = cur.getString(titleColumn); si.artist = cur.getString(artistColumn); si.artistID = cur.getLong(artistIDColumn); si.album = cur.getString(albumColumn); si.albumID = cur.getLong(albumIDColumn); si.duration = cur.getLong(durationColumn); si.dataStream = cur.getString(dataColumn); list.add(si); } while (cur.moveToNext()); return list; }