안드로이드 개발 질문/답변
(글 수 45,052)
public void viewCamera() { Intent i = new Intent(); i.setAction("android.media.action.IMAGE_CAPTURE"); SimpleDateFormat timeStampFormat = new SimpleDateFormat("yyyy-MM-dd HH.mm.ss"); filename = timeStampFormat.format(new Date(System.currentTimeMillis())); ContentValues values = new ContentValues(); values.put(Images.Media.DATA, Environment.getExternalStorageDirectory().getAbsolutePath()+"/abc/"+filename); values.put(Images.Media.TITLE, filename); values.put(Images.Media.DISPLAY_NAME, filename); values.put(Images.Media.BUCKET_ID, "test"); values.put(Images.Media.DESCRIPTION, "test Image taken"); values.put(Images.Media.MIME_TYPE, "image/jpeg"); photoUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); log("pic file name : "+filename); i.putExtra(MediaStore.EXTRA_OUTPUT, photoUri); this.startActivityForResult(i,0); }
위와 같이 인텐트를 실행하고 아래와 같이 저장합니다.
protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(requestCode== 0) //Get result from camera { if (resultCode == Activity.RESULT_OK) //result is OK { String imgFileName = ImageUtil.getImageInfo(this,filename); Intent intent = new Intent(); intent.setClass(this, P2PTabMain.class); intent.setAction(IntentConstant.ACTION_MOVE_ACTIVITY); intent.putExtra(IntentConstant.EXTRA_TAB_FOCUS, IntentConstant.INDEX_SETTING); intent.putExtra(IntentConstant.EXTRA_TAB_NUM, IntentConstant.INDEX_EDIT_MY_PROFILE); intent.putExtra(IntentConstant.EXTRA_DATA, imgFileName); onNewIntent(intent); } else //result is not OK { String fn = ImageUtil.getImageInfo(this,filename); if(fn!=null){ File f = new File(fn); if(f.exists()) { getContentResolver().delete(photoUri, null, null); } } } } }
이 경우에 넥서스 원은 이미지를 하나만 저장합니다. (제가 전달해준 URI)
그런데 갤S는 원본이미지가 카메라 디렉토리에 남아있고 제가 전달해준 URI에도 중복 저장합니다.
더 짜증나는건 옵티머스 Z는 320*240 크기의 그림으로 제가 전달해준 URI에 저장합니다.
제가 원하는것은 제가 전달해준 URI로 원본크기 하나만 저장하는것입니다. (넥원의 케이스..)
단말 별로 들어가는 Extra 값이 있어도 좋으니 답변 부탁드립니다.