2010-08-31 31 views
1

我在市場上有一個音樂播放器應用程序,我的用戶在Froyo更新後開始報告音樂顯示爲「未知藝術家」和「未知標題」的問題。我注意到我的摩托羅拉Droid 2運行Froyo時出現同樣的情況。做一些谷歌搜索,我發現其他用戶(甚至Last.fm證實了這個問題),「Android」沒有正確讀取/存儲標籤。我無法找到任何有關此問題的技術/開發人員反饋。Froyo更新後無法讀取ID3標籤?

以下是之前已經升級Froyo工作6個月的代碼:

String whereclause = MediaStore.Audio.Media.DATA + " = \"" + path 
     + "\""; 
curSong = CR.query(MediaStore.Audio.Media 
     .getContentUri("external"), new String[] { 
     MediaStore.Audio.Media.TITLE, MediaStore.Audio.Media.ALBUM, 
     MediaStore.Audio.Media.ARTIST }, whereclause, null, null); 
if (curSong != null) { 
    curSong.moveToFirst(); 
    title = curSong.getString(0); 
    album = curSong.getString(1); 
    artist = curSong.getString(2); 
} 

查詢之後,curSong不爲空,所以「如果」塊繼續,但後來我想,當得到CursorIndexOutOfBounds閱讀curSong.getString(0)。 Froyo有沒有新的方式將標籤存儲在MediaStore中?

經過一番調試,我發現ID3標籤很好,仍然在同一個地方。問題在於我的條款。我正在尋找歌曲的路徑,它以前存儲在MediaStore.Audi.Media.DATA,但顯然不再存在,所以我實際上從這個查詢中獲得一個空集。現在我需要找到存儲路徑的位置。

+0

感謝您發佈此信息。我正在開發音樂播放器應用程序,這些信息非常有用。我會投票,但我剛開始這個帳戶,並沒有積分。大聲笑。 :代碼上的/ GG。 – 2010-11-10 17:14:56

回答

0

我發現了這個問題。路徑仍然存儲在MediaStore.Audio.Media.DATA中,但是,似乎Froyo在「/ sdcard」之前添加了「/ mnt」。當我將「/ mnt」添加到where條中的路徑時,它能夠找到這首歌並且一切都很好。

我希望這可以幫助別人在未來。