public async void AddToPlaylist(string path, string playList, long playlistID) { if (playList == GetString(Resource.String.create_playlist)) { CreatePlalistDialog(path); } else { await MainActivity.instance.GetWritePermission(); int playSlot = await PlaylistManager.GetLastPlayCount(playlistID); List <ContentValues> values = new List <ContentValues>(); ContentResolver resolver = MainActivity.instance.ContentResolver; Uri musicUri = MediaStore.Audio.Media.GetContentUriForPath(path); CursorLoader cursorLoader = new CursorLoader(Android.App.Application.Context, musicUri, null, null, null, null); ICursor musicCursor = (ICursor)cursorLoader.LoadInBackground(); if (musicCursor != null && musicCursor.MoveToFirst()) { int thisID = musicCursor.GetColumnIndex(MediaStore.Audio.Media.InterfaceConsts.Id); int pathID = musicCursor.GetColumnIndex(MediaStore.Audio.Media.InterfaceConsts.Data); do { string songPath = musicCursor.GetString(pathID); if (!songPath.Contains(path)) { continue; } long id = musicCursor.GetLong(thisID); ContentValues value = new ContentValues(); value.Put(MediaStore.Audio.Playlists.Members.AudioId, id); value.Put(MediaStore.Audio.Playlists.Members.PlayOrder, playSlot + 1); values.Add(value); playSlot++; }while (musicCursor.MoveToNext()); musicCursor.Close(); } resolver.BulkInsert(MediaStore.Audio.Playlists.Members.GetContentUri("external", playlistID), values.ToArray()); } }