2013-07-06 46 views
0

我在從Android播放列表中檢索歌曲時遇到問題。目前我正在試圖做到這一點使用下面的代碼(基於答案給出here這個問題):Android:從播放列表中檢索歌曲時出錯

String where = MediaStore.Audio.Playlists._ID     
        + "=?"; 

String whereVal[] = {id}; 

String[] proj = 
{ 
    MediaStore.Audio.Playlists.Members.AUDIO_ID, 
    MediaStore.Audio.Playlists.Members.ARTIST, 
    MediaStore.Audio.Playlists.Members.TITLE, 
    MediaStore.Audio.Playlists.Members._ID 
}; 

Cursor mCursor = getActivity().getContentResolver().query(
       MediaStore.Audio.Playlists.Members.getContentUri("external", Long.parseLong(id)), 
       proj, where, whereVal, null); 

其中id是我檢索使用cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Playlists._ID));播放列表ID(我知道這是正確的)

然而,這引起以下錯誤:

07-06 19:35:02.496: E/AndroidRuntime(8818): android.database.sqlite.SQLiteException: 
ambiguous column name: _id (code 1): , while compiling: SELECT audio_id, artist, title, 
audio_playlists_map._id AS _id FROM audio_playlists_map, audio WHERE (audio._id = 
audio_id AND playlist_id=?) AND (_id=?) 

我有一種奇怪的感覺,這個問題主要表現在以下: String where = MediaStore.Audio.Playlists._ID + "=?";但我不知道如何糾正它。

回答

1

由於您已經使用播放列表的內容URI,因此您不需要where子句。我會試試這個:

Cursor mCursor = getActivity().getContentResolver().query(
      MediaStore.Audio.Playlists.Members.getContentUri("external", Long.parseLong(id)), 
      proj, null, null, null); 
+0

是的,你是完全正確的,我不知道爲什麼我包括在哪裏。謝謝。 –

相關問題