Исключительная ситуация при попытке изменить значение MediaStore.Audio.Media.YEAR

Сообщение об ошибке LogCat я получаю:

android.database.sqlite.SQLiteConstraintException: CHECK constraint failed

Код, который я использую для обновления значений контента:

ContentResolver resolver = c.getContentResolver();

        String currentTitle     = MediaStore.Audio.Media.TITLE;
        String currentArtist    = MediaStore.Audio.Media.ARTIST;
        String currentAlbum     = MediaStore.Audio.Media.ALBUM;
        String currentYear      = MediaStore.Audio.Media.YEAR;

        ContentValues values = new ContentValues();
        values.put(currentTitle, title);
        values.put(currentArtist, artist);
        values.put(currentAlbum, album);
        values.put(currentYear, year);

        ContentValues values2 = new ContentValues();
        values.put(MediaStore.Audio.Genres.NAME, genre);

        String where = MediaStore.Audio.Media._ID + "=?";
        String[] whereVal = {Long.toString(songID)};

        resolver.update(musicUri, values, where, whereVal);

переменные title, artist, album и year - это значения, которые я получаю из EditTexts.

Все работает, кроме случаев, когда я пытаюсь обновить значение MediaStore.Audio.Media.YEAR.

Я заметил, что когда я оставляю EditText пустым или вводим число> 0, это не приводит к сбою.

Но для песен, у которых нет установленного года, значение равно 0, поэтому, когда я изменяю все, кроме года, который остается равным 0, я получаю ошибку.

Что означает ошибка?

0 ответов

Другие вопросы по тегам