안녕하세요,
구글에서 카메라 찍는거 & 크랍하는거 예제보고 하고 있는데요.
크랍이나 카메라 구동엔 문제가 없는데 앨범에 카메라가 저장이 안됩니다. 그러다 가끔 돼요.
먼저 파일과 위치를 리턴하는 함수 하나를 만들고요,
private File createImageFile() throws IOException {
String imageFileName = "tmp_" + String.valueOf(System.currentTimeMillis()) + ".jpg";
File storageDir = new File(Environment.getExternalStorageDirectory(), imageFileName);
mCurrentPhotoPath = "file:" + storageDir.getAbsolutePath();
return storageDir;
}
그리고 그 만들어진 파일의 위치를 리턴받아 그냥 찍는게 다에요.
// 사진찍기
private void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
File photoFile = null;
try {
photoFile = createImageFile();
} catch (IOException ex) {
}
if (photoFile != null) {
photoURI = Uri.fromFile(photoFile); // 임시폴더의 위치,경로 가져옴
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI); // 찍은 사진의 takePictureIntent를 putextra로
// photoURI(경로)로 보냄
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
}
그리고 activityresult에서 값에 따른 처리..
이상한건 몇개는 저장되다가 그 다음부턴 저장이 안돼요. 다시 앱 설치하면 한꺼번에 저장이 다 된걸로 나온다는...
무슨 문제가 있을까요..??
참 그리고..
Environment.getExternalStoragePublicDirectory
이것을 사용하면요, 외장메모리에 저장이 되는건가요?
만약 외장메모리가 없는 사람들을 위해서는 어디에 저장되도록 해야할지 궁금합니다.
감사합니다 :D