I understand how it's like to have absolutely nothing to even know where to start looking.
Anyway, I use the following code for getting a list of Artists.
public ArrayList<ArtistItem> getArtistList() {
ArrayList<ArtistItem> artistList = new ArrayList<ArtistItem>();
Uri uri = MediaStore.Audio.Artists.EXTERNAL_CONTENT_URI;
String[] projection = new String[] {MediaStore.Audio.Artists._ID, MediaStore.Audio.ArtistColumns.ARTIST, MediaStore.Audio.ArtistColumns.NUMBER_OF_TRACKS};
Cursor musicCursor = getContentResolver().query(uri, projection, null, null, null);
int idColumn = musicCursor.getColumnIndex(MediaStore.Audio.Artists._ID);
int titleColumn = musicCursor.getColumnIndex(MediaStore.Audio.ArtistColumns.ARTIST);
int numColumn = musicCursor.getColumnIndex(MediaStore.Audio.ArtistColumns.NUMBER_OF_TRACKS);
// Iterate over the List
if(musicCursor!=null && musicCursor.moveToFirst()) {
//add songs to list
do {
String id = musicCursor.getString(idColumn);
String title = musicCursor.getString(titleColumn);
String num = musicCursor.getString(numColumn);
if(title == null || title.equals(MediaStore.UNKNOWN_STRING)) {
title = "Unknown Artist";
}
if(num.equals("1")) {
num = num + " Song";
} else {
num = num + " Songs";
}
artistList.add(new ArtistItem(thisId, thisTitle, thisNum));
} while (musicCursor.moveToNext());
}
return artistList;
}
public class ArtistItem{
private String id;
private String title;
private String num;
ArtistItem(String theId, String theTitle, String theNum) {
id = theId;
title = theTitle;
num = theNum;
}
// TODO Implement getters and setters for id, title and num
}