Буду признателен за помощь в проблеме. Я пытаюсь добавить песни в список воспроизведения, но всякий раз, когда я пытаюсь использовать вставку или bulkInsert, это не работает, если я использую вставку, я просто получаю нулевую строку в качестве возвращаемого значения, если я использую bulkInsert, она будет выбросить исключение NullPointerException (так что в основном это означает, что строки не были вставлены, потому что bulkInsert возвращает количество вставленных строк). Ниже у меня есть код, который я использовал, и снимок состояния моего метода, когда я его отлаживал:
public void savePlaylist(Playlist p) {
String name = p.getPlaylistName();
Uri playlistURI = MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI;
ContentResolver contentResolver = context.getContentResolver();
Cursor playlistCursor = contentResolver.query(playlistURI, new String[]{"*"}, null, null, null);
long playlistID = getPlaylistID(playlistCursor, name);
if (playlistID == 0)
{
ContentValues playlistValue = new ContentValues();
playlistValue.put(MediaStore.Audio.Playlists.NAME, name);
playlistValue.put(MediaStore.Audio.Playlists.DATE_MODIFIED, System.currentTimeMillis());
contentResolver.insert(playlistURI, playlistValue);
playlistID = getPlaylistID(contentResolver.query(playlistURI, new String[]{"*"}, null, null, null), name);
}
Uri insertionUri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlistID);
ContentValues[] rowsToAdd = new ContentValues[p.getSongs().size()];
for (int i = 0; i < p.getSongs().size(); i++) {
Song toAdd = p.getSongs().get(i);
rowsToAdd[i] = new ContentValues();
rowsToAdd[i].put(MediaStore.Audio.Playlists.Members.AUDIO_ID, toAdd.getId());
}
try {
int result = context.getContentResolver().bulkInsert(insertionUri, rowsToAdd);
if (result > 0) {
Log.d("DEBUG", "Row inserted succesfully");
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
Я должен указать, что этот метод используется для добавления списка воспроизведения, если он не существует, и добавления в него песен, если он существует, прежде чем я начну обрабатывать события, например, если песни уже существуют или нет, я должен сначала решить эту проблему.