2016-04-24 12 views
0

私は特定のアーティストから曲を手に入れようとしていますが、どうすればいいのですか?アーティストはユーザーの入力に応じて変更されるので、ハードコードするべきではありません。現在、デバイスからすべての曲をクエリするのにMediaStoreを使用していますが、選択したアーティストの曲のみを取得できるようにする方法はわかりません。特定のアーティストから曲を入手するには?

は、ここで私は以前にカーソルでの選択としてartistIdを渡すだけでなく、artistNameを渡してみました

public void displayArtistSongs(String artistName) { 
    //retrieve song info 
    ContentResolver musicResolver = getActivity().getContentResolver(); 
    Uri musicUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; 
    Cursor musicCursor = musicResolver.query(musicUri, null, artistName, null, null); 

    if(musicCursor!=null && musicCursor.moveToFirst()){ 
     //get columns 
     int idColumn = musicCursor.getColumnIndex 
       (MediaStore.Audio.Media._ID); 
     int titleColumn = musicCursor.getColumnIndex 
       (MediaStore.Audio.Media.TITLE); 
     //add songs to list 
     do { 
      long thisId = musicCursor.getLong(idColumn); 
      String thisTitle = musicCursor.getString(titleColumn); 

      songList.add(new Song(thisId, thisTitle, null, null, null)); 

     } 
     while (musicCursor.moveToNext()); 
    } 
    musicCursor.close(); 
} 

...コードだが、それはまだ動作しません。どんな解決策ですか?ありがとう。あなたはこのコードを使用することができます選択したアーティストからすべての曲を照会する

答えて

1

String selection = MediaStore.Audio.Media.ARTIST + "=?"; 
String[] selectionArgs = {artistName}; 

Cursor cursor = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, selection, selectionArgs, null); 
関連する問題