Исключительная ситуация при попытке изменить значение MediaStore.Audio.Media.YEAR - PullRequest
0 голосов
/ 22 января 2019

Сообщение об ошибке 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);

заголовок переменной, исполнитель, альбом и год - это значения, которые я получаю из EditTexts.

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

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

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

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

...