2015-03-03 74 views
0

我想弄清楚如何從MediaStore重命名我的播放列表。從MediaStore重命名播放列表

下面我有代碼通過傳遞指定的播放列表ID來刪除特定播放列表。

有了內容解析程序,有一種叫做resolver.delete的方法,這很容易,但我似乎不明白我如何重命名指定的播放列表。

我需要做些什麼才能讓下面的代碼重命名指定的播放列表。

private void deletePlaylist(String playlistid) { 
    // // Log.i(TAG, "deletePlaylist"); 

    ContentResolver resolver = getActivity().getContentResolver(); 
    String where = MediaStore.Audio.Playlists._ID + "=?"; 
    String[] whereVal = { playlistid }; 
    resolver.delete(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI, where, 
      whereVal); 

    return; 
} 
+1

你還在爲此工作嗎?您是否嘗試過更新方法,即「更新(Uri uri,ContentValues值,String where,String [] selectionArgs)」 – 2015-03-07 00:58:28

+0

我還沒有嘗試過這種方法,您能否給我一個如何使用它的例子基於我上面的代碼?謝謝。 – Jack 2015-03-07 20:02:36

+0

你對resolver.delete有任何問題嗎?我這樣做,它會刪除m3u文件,但是當我重新啓動Android設備時文件會被恢復。我知道它涉及媒體服務。我希望我可以永久刪除! – 2015-03-09 02:59:19

回答

3

ContentResolver的的更新方法應該工作。爲了您的方便,Google網頁的網址爲ContentResolver update

無論如何,這是我的建議代碼。 我沒有試過,但我會:

ContentValues values = new ContentValues(1); 
values.put(MediaStore.Audio.Playlists.NAME, "NewPlaylist"); 

resolver.update(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI, 
    values, "_id=" + playlistid, null); 

注意NewPlaylist是你的更新列表名稱,並playlistid是你現有的ID。但是,您可能仍然需要刪除現有的播放列表。我在這個問題上看到了現有的Android應用程序(市場上)的錯誤,令人討厭。 我想知道你的進展。保持我的發佈。

+0

謝謝你,這工作得很好。我還沒有發現任何問題,如果我這樣做,我會更新你。無論如何先生謝謝您,無論您身在何處,都可以享受美好的一天! :) – Jack 2015-03-07 23:43:10

+1

嘿,這很好。我想製作自己的播放列表應用,因爲我厭倦了使用其他不適用的應用,錯誤。我會考慮你我的播放列表好友,哈哈。 – 2015-03-07 23:45:02

+0

隨時與我聯繫。我在Google和亞馬遜上發佈了新的播放列表管理器。 (注意谷歌目前因爲所謂的版權問題而封鎖了我的最新版本,但最新版本在亞馬遜上可用。 – Theo 2015-03-09 11:31:59

0

對於很好的措施,與「原始Android」非常相似。我還沒有發現任何問題。

private final Uri uri = MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI; 
public void renamePlaylist(Context context, String newplaylist, long playlist_id) { 
    ContentResolver resolver = context.getContentResolver(); 
    ContentValues values = new ContentValues(); 
    String where = MediaStore.Audio.Playlists._ID + " =? "; 
    String[] whereVal = { Long.toString(playlist_id) }; 
    values.put(MediaStore.Audio.Playlists.NAME, newplaylist); 
    resolver.update(uri, values, where, whereVal); 
}