SQLiteConstraintException:错误代码19:设置铃声时约束失败 [英] SQLiteConstraintException: error code 19: constraint failed when set ringtones

查看:70
本文介绍了SQLiteConstraintException:错误代码19:设置铃声时约束失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的代码。

ContentValues values = new ContentValues();
        values.put(MediaStore.MediaColumns.DATA, newSoundFile.getAbsolutePath());
        values.put(MediaStore.MediaColumns.TITLE, "my ringtone");
        values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/*");
        values.put(MediaStore.MediaColumns.SIZE, newSoundFile.length());
        values.put(MediaStore.Audio.Media.ARTIST, R.string.app_name);
        values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
        values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
        values.put(MediaStore.Audio.Media.IS_ALARM, true);
        values.put(MediaStore.Audio.Media.IS_MUSIC, false);

        Uri uri = MediaStore.Audio.Media.getContentUriForPath(newSoundFile
                .getAbsolutePath());
        Uri newUri = mCr.insert(uri, values);

        try {
            RingtoneManager.setActualDefaultRingtoneUri(RingToneActivity.this,
                    RingtoneManager.TYPE_RINGTONE, newUri);

        } catch (Throwable t) {
            Log.d("Eroor", "catch exception");
        }

但我遇到错误...

07-14 18:07:09.569: E/Database(7505): Error inserting album_id=-1 title=afsdfa is_notification=true title_key=Q-Q7QQQ3Q7Q-Q mime_type=audio/* date_added=1373805429 _display_name=myringtone.mp3 is_alarm=true is_ringtone=true _size=0 artist_id=6 is_music=false _data=/sdcard/MyRingTones/myringtone.mp3
07-14 18:07:09.569: E/Database(7505): android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed
07-14 18:07:09.569: E/Database(7505):   at android.database.sqlite.SQLiteStatement.native_execute(Native Method)
07-14 18:07:09.569: E/Database(7505):   at android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:61)
07-14 18:07:09.569: E/Database(7505):   at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1582)
07-14 18:07:09.569: E/Database(7505):   at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1426)
07-14 18:07:09.569: E/Database(7505):   at com.android.providers.media.MediaProvider.insertInternal(MediaProvider.java:2519)
07-14 18:07:09.569: E/Database(7505):   at com.android.providers.media.MediaProvider.insert(MediaProvider.java:2341)
07-14 18:07:09.569: E/Database(7505):   at android.content.ContentProvider$Transport.insert(ContentProvider.java:198)
07-14 18:07:09.569: E/Database(7505):   at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:146)
07-14 18:07:09.569: E/Database(7505):   at android.os.Binder.execTransact(Binder.java:320)
07-14 18:07:09.569: E/Database(7505):   at dalvik.system.NativeStart.run(Native Method)

请帮助。
预先感谢。

Please Help. Thanks in advance.

推荐答案

I solve problem.


 Uri uri = MediaStore.Audio.Media.getContentUriForPath(SDCardRoot);                                                               
                               getContentResolver().delete(uri, MediaStore.MediaColumns.DATA + "=\"" + SDCardRoot + "\"", null);                               
                               Uri newUri = getContentResolver().insert(uri, values);                

这篇关于SQLiteConstraintException:错误代码19:设置铃声时约束失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆