2011-08-22 65 views
0

以下代碼允許我拍照,但不會將圖像插入到數據庫中。我錯過了什麼?無法將圖像插入媒體數據庫

Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
ContentValues values = new ContentValues(); 
values.put(Media.TITLE, "Image"); 
values.put(Images.Media.BUCKET_ID, "292"); 
values.put(Images.Media.BUCKET_DISPLAY_NAME, "thename"); 
values.put(Images.Media.MIME_TYPE, "image/jpeg"); 
values.put(Media.DESCRIPTION, "Image capture by camera"); 
values.put("_data", IMG_FILE_PATH); 
Uri uri = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI , values); 
i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, uri); 
i.putExtra("return-data", true); 
startActivityForResult(i,REQ_PHOTO); 
+0

values.put(「_ data」,IMG_FILE_PATH); 也許嘗試刪除此。 _data是你的文件被存儲的地方,所以當你拍攝照片時,預先插入這個文件可能會搞砸了。 – dymmeh

+0

此外,你是否需要預先插入所有這些值?我有一個4行長的圖像捕捉意圖,並且完美地工作 – dymmeh

+0

您可以在答案中粘貼捕獲代碼嗎?想給點積分 – hunterp

回答

1
Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
        new ContentValues());  
Intent imageIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri); 
startActivityForResult(imageIntent, REQUEST_CODE_CAPTURE_IMAGE_ACTIVITY); 

儘量只使用此代碼。當Android嘗試存儲圖像時,似乎覆蓋_data會導致問題。

+0

這些圖像不會立即出現在畫廊中。安裝/卸載我的SD卡後,不知何故,這會導致畫廊的一些神奇刷新。這是一個副作用,而不是一個解決方案。你一定要留下什麼東西? – hunterp

+0

試試看看這個http://stackoverflow.com/questions/2870906/adding-pictures-to-the-gallery-android – dymmeh

+0

謝謝。工作。 – hunterp