2010-10-19 2 views
0

mon code est comme celors de l'insertion dans le fichier audio MediaStore.Audio.Media.EXTERNAL_CONTENT_URI dans Android

valeurs contentValues ​​= new contentValues ​​();

values.put(MediaStore.Audio.Media._ID, _ID); 
     values.put(MediaStore.Audio.Media.DATA, DATA); 
     values.put(MediaStore.Audio.Media.DISPLAY_NAME, DISPLAY_NAME); 
     values.put(MediaStore.Audio.Media.SIZE, SIZE); 
     values.put(MediaStore.Audio.Media.MIME_TYPE, MIME_TYPE); 
     values.put(MediaStore.Audio.Media.DATE_ADDED, DATE_ADDED); 
     values.put(MediaStore.Audio.Media.DATE_MODIFIED, DATE_MODIFIED); 
     values.put(MediaStore.Audio.Media.TITLE, TITLE); 
     values.put(MediaStore.Audio.Media.TITLE_KEY, TITLE_KEY); 
     values.put(MediaStore.Audio.Media.DURATION, DURATION); 
     values.put(MediaStore.Audio.Media.ARTIST_ID, ARTIST_ID); 
     values.put(MediaStore.Audio.Media.COMPOSER, COMPOSER); 
     values.put(MediaStore.Audio.Media.ALBUM_ID, ALBUM_ID); 
     values.put(MediaStore.Audio.Media.TRACK, TRACK); 
     values.put(MediaStore.Audio.Media.YEAR, YEAR); 
     values.put(MediaStore.Audio.Media.IS_RINGTONE, IS_RINGTONE); 
     values.put(MediaStore.Audio.Media.IS_ALARM, IS_ALARM); 
     values.put(MediaStore.Audio.Media.IS_NOTIFICATION, IS_NOTIFICATION); 
     values.put(MediaStore.Audio.Media.IS_PODCAST, IS_PODCAST); 
     values.put(MediaStore.Audio.Media.BOOKMARK, BOOKMARK); 
     values.put(MediaStore.Audio.Media.ARTIST_KEY, ARTIST_KEY); 
     values.put(MediaStore.Audio.Media.ARTIST, ARTIST); 
     values.put(MediaStore.Audio.Media.ALBUM_KEY, ALBUM_KEY); 
     values.put(MediaStore.Audio.Media.ALBUM, ALBUM); 
     Uri uri = getContentResolver().insert(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, values); 
     try { 
      OutputStream outStream = getContentResolver().openOutputStream(uri); 
      outStream.write(buffer); 
      outStream.close(); 

     } catch (Exception e) { 
      Log.e("insetAudio", "exception inserting audio", e); 
     } 

il me donne exception qu'il n'y a pas de colonne dans audio_meta nommé artist_key

10-19 17: 14: 22,491: INFO/Base de données (214): sqlite retourné: code d'erreur = 1, msg = table audio_meta n'a pas de colonne nommée artist_key 10-19 17: 14: 22.543: ERREUR/base de données (214): Erreur lors de l'insertion de artist_key =% D% <% 8% <% R%,% B% is_alarm = 0 is_ringtone = 0 is_podcast = 0 compositeur = null titre = Vivuzela mime_type = audio/mpeg _id = 5 date_added = 1287488662 _nom_display = vuvuzela.mp3 album_key =%,% <% D% P %% D% <% 8% <% R%,% B% % R% 4% 0%:% F% H% V% <%,% R% <% H% F% P %% J% V% R %% B% R% 2% -1882603603 année = 2010 _size = 498344 _data =/mnt/sdcard/Android/data/vuvuzela.mp3 bookmark = null date_modified = 1287374780 piste = 0 id_artiste = 1 album_id = 4 durée = 31112 is_notification = 0 titre_key =% V% <% V% T% ^% 4% B%,% 10-19 17: 14: 22.543: ERREUR/Base de données (214): android.database.sqlite.SQLiteException: table audio_meta n'a pas de colonne nommée artist_key:, lors de la compilation: INSERT INTO audio_meta (artist_key, is_alarm, is_ringtone, is_podcast, compositeur, titre, mime_type, _id, date_added, _display_name , clé_album, année, _size, _data, signet, date_modifiée, piste, id_artiste, id_album, durée, is_notification, touche_titre) VALEURS (?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?); 10-19 17: 14: 22.543: ERROR/Database (214): à android.database.sqlite.SQLiteCompiledSql.native_compile (Méthode native) 10-19 17: 14: 22.543: ERREUR/Base de données (214): at android .database.sqlite.SQLiteCompiledSql.compile (SQLiteCompiledSql.java:91) 10-19 17: 14: 22.543: ERREUR/base de données (214): at android.database.sqlite.SQLiteCompiledSql. (SQLiteCompiledSql.java:64) 10 -19 17: 14: 22.543: ERREUR/base de données (214): at android.database.sqlite.SQLiteProgram. (SQLiteProgram.java:80) 10-19 17: 14: 22.543: ERREUR/base de données (214): at android .database.sqlite.SQLiteStatement. (SQLiteStatement.java:36) 10-19 17: 14: 22.543: ERREUR/base de données (214): at android.database.sqlite.SQLiteDatabase.compileStatement (SQLiteDatabase.java:1145) 10 -19 17: 14: 22.543: ERREUR/Base de données (214): at android.database.sqlite.SQLiteDa tabase.insertWithOnConflict (SQLiteDatabase.java:1536) 10-19 17: 14: 22.543: ERREUR/base de données (214): at android.database.sqlite.SQLiteDatabase.insert (SQLiteDatabase.java:1410) 10-19 17: 14: 22.543: ERROR/Database (214): at com.android.providers.media.MediaProvider.insertInternal (MediaProvider.java:1813) 10-19 17: 14: 22.543: ERREUR/Base de données (214): at com. android.providers.media.MediaProvider.insert (MediaProvider.java:1638) 10-19 17: 14: 22.543: ERREUR/base de données (214): at android.content.ContentProvider $ Transport.insert (ContentProvider.java:174) 10-19 17: 14: 22.543: ERREUR/base de données (214): at android.content.ContentProviderNative.onTransact (ContentProviderNative.java:146) 10-19 17: 14: 22.543: ERROR/Database (214): at android.os.Binder.execTransact (Binder.java:288) 10-19 17: 14: 22.543: ERREUR/Base de données (214): à dalvik.system.NativeStart.run (Native Method)

quelqu'un peut me aider WHTS mal avec mon code bien que je peux voir coulmn artist_key tout en obtenant des valeurs du curseur de cette uri et aussi la valeur pour cela, mais quand je veux insérer la valeur qu'elle génère une exception

merci à l'avance

Répondre

0

Vous ne devriez pas essayer de mettre dans le champ de ARTIST_KEY toute valeur, car il est calculé par des fonctions internes d'Android basé sur la valeur du champ ARTISTE.Smth comme valeur de hachage ou alors.

Questions connexes