Alternativa a MediaStore.Playlists.Members.moveItem

He estado usando el siguiente código para eliminar un elemento de una lista de reproducción en mi aplicación de Android:

private void removeFromPlaylist(long playlistId, int loc) { ContentResolver resolver = getApplicationContext().getContentResolver(); Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlistId); resolver.delete(uri, MediaStore.Audio.Playlists.Members.PLAY_ORDER+" = "+loc, null); for(int i=loc+1;i<playSongIDs.length;i++) { MediaStore.Audio.Playlists.Members.moveItem(resolver,playlistId,i, i-1); } } 

Actualmente estoy usando la biblioteca de Android 2.2 y esto es lo único que necesito cambiar para usar Android 2.1. ¿Existe un método alternativo para eliminar un elemento de una lista de reproducción y ajustar el orden de los elementos después del borrado?

Mirando el código de la MediaStore salimos con esta solución que parece funcionar bien:

 /** * Convenience method to move a playlist item to a new location * @param res The content resolver to use * @param playlistId The numeric id of the playlist * @param from The position of the item to move * @param to The position to move the item to * @return true on success */ private boolean moveItem(ContentResolver res, long playlistId, int from, int to) { Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlistId) .buildUpon() .appendEncodedPath(String.valueOf(from)) .appendQueryParameter("move", "true") .build(); ContentValues values = new ContentValues(); values.put(MediaStore.Audio.Playlists.Members.PLAY_ORDER, to); return res.update(uri, values, null, null) != 0; } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.