尝试更改MediaStore.Audio.Media.YEAR值

时间:2019-01-22 16:32:17

标签: java android android-contentresolver content-values

我收到

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时不会崩溃。

但是对于未设置Year的歌曲,其值为0,因此,当我更改除年份之外的所有内容(保留为0的年份)时,都会出现错误。

错误是什么意思?

0 个答案:

没有答案