2012-07-19 22 views
5

私はメディアContentProviderでmp3を追加して遊んでいました。挿入が失敗した場合の拘束エラーの取得

// LOOP1_PATH: /mnt/sdcard/60AH/hack043/loop1.mp3 

ContentValues values = new ContentValues(5); 
values.put(Media.ARTIST, "Android"); 
values.put(Media.ALBUM, "60AH"); 
values.put(Media.TITLE, "hack043"); 
values.put(Media.MIME_TYPE, "audio/mp3"); 
values.put(Media.DATA, LOOP1_PATH); 

getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values); 

あなたはこのコードを実行した場合、それは動作します:

コードは次のようなものです。 100%ではないことを確認

E/Database(4102): Error inserting album_id=66 title=hack043 title_keyQQQQQ*Q*Q*Q mime_type=audio/mp3 date_added=1342706644 _display_name=loop12.mp3 sort_key=hack043 artist_id=133 _data=/mnt/sdcard/60AH/hack043/loop1.mp3 
E/Database(4102): android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed 
E/Database(4102): at android.database.sqlite.SQLiteStatement.native_execute(Native Method) 
E/Database(4102): at android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:61) 
E/Database(4102): at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1582) 
E/Database(4102): at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1426) 
E/Database(4102): at com.android.providers.media.MediaProvider.insertInternal(MediaProvider.java:2166) 
E/Database(4102): at com.android.providers.media.MediaProvider.insert(MediaProvider.java:1984) 
E/Database(4102): at android.content.ContentProvider$Transport.insert(ContentProvider.java:206) 
E/Database(4102): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:146) 
E/Database(4102): at android.os.Binder.execTransact(Binder.java:320) 
E/Database(4102): at dalvik.system.NativeStart.run(Native Method) 

、私はパスがUNIQUEであるため、制約が失敗した推測:あなたはそれを2回実行してみた場合には、次のスタックトレースを取得します。ここ

私の質問は:制約エラーに関する詳細情報を取得する方法は

ありますか?

+0

APIバージョンがありません。あなたは実際にもっと情報が必要ですか?私はあなたが常に最初にクエリすることができ、クエリが空に戻る場合にのみ挿入することを意味します。 – dualed

答えて

0

残念ながら、これはネイティブ関数の結果です。リストされたコードhereはエラーメッセージに変換されます。

関連する問題