2010-08-03 53 views
0

我對android編程頗爲陌生,現在我正在爲媒體商店玩個人測試項目。我碰到一對夫婦雙邊緣問題..操作媒體庫所需的建議

  1. 我需要查詢mediastore所有的音樂文件的列表,夠簡單 - 我需要限制的結果,只有特定的文件夾。我使用SQL- * LIKE- where子句完成了這個任務(相當容易),並在這方面做得很好。

  2. 我現在需要一個唯一的(如果這是實際使用SQL,我可以簡單地使用DISTINCT改性劑和與此完成)所有藝術家的列表。現在這是基於給定路徑中的歌曲。因此,我無法過濾查詢URI所返回的列表:MediaStore.Audio.Artists.EXTERNAL_CONTENT_URI,並像第一步中那樣添加基於文件路徑的子句。

那麼,這是什麼留給我用我的初始查詢和獲取光標當時從光標剝離受騙者(這是我現在 - 太慢,尤其是1000首+歌曲) - 基於很明顯,在藝術家而不是歌曲的問題上。

是否可以重寫實際查詢來填充遊標,也許?如:重寫查詢並篩選數據最初放入遊標的方式(刪除遞歸條目)並立即返回適當的遊標?內容提供者以及他們從來沒有建立過獨特的功能,這些都超出了我,但是無論如何。來自URI查詢命令的返回的遊標是否可以被覆蓋或不被覆蓋?這就是目前我不清楚這一點。我希望能夠直接包裝getContentResolver()。query(xxx ..))命令以刪除光標填充上的條目 - 如果可能的話 - 我做異步查詢並使用單個查詢語句(好吧,一個用於藝術家查詢)會很好。

我的另一個想法是預加載數據並通過基於預加載的數據集(遊標)創建一個新的遊標來操作我的視圖的數據 - 這可能是要走的路,如果是的話 - 遊標是最好的方式來存儲這些數據?還擔心更大的圖書館的公羊。

也許有一個簡單的方法來做到對URI一個DISTINCT查詢 - 我只是不知道。

我已經看到了這個問題(或之流有-的)問了很多次,都意味着一個URI,而不是一個SQL後端沒有很好的答案。

謝謝大家,感謝幫助。

回答

0

關閉這個,我決定使用mediastore就像它的意圖。如果它在設備上,它應該在您的mediaplayer中列出。

如果你看任何手機,是一個媒體播放器(尤其是機器人或iPhone手機,例如),他們對待設備這種方式。

當技術進步,這變得司空見慣時,我會相應地調整我的內容提供者包裝。

簡而言之,它可以做到 - 是的。這很容易做到,而不是真的。多思考後,這是一個電話 - 把它當作一個電話。如果任何人都可以證明爲什麼這個「需要」得以實施,那麼我就是耳朵。

謝謝,所有!