2014-10-08 2 views
0

안드로이드 문서는 이미지를 캡처하고 EXTERNAL 스토리지에 저장하는 방법을 보여줍니다. 그러나 사용자가 SD 카드를 가지고 있지 않더라도 내 앱이 작동하기를 원합니다. 업로드하기 전까지는 파일을 임시 저장하면됩니다.SD 카드를 필요로하지 않고 사진 찍기

그래서 나는 같은 파일을 만들고 카메라 응용 프로그램에 의도을 통해 URI를 전달합니다

File imgfile = new File(getFilesDir(), imageFileName); 
imgfile.setReadable(true, false); 
imgfile.createNewFile(); 

Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(imgFile)); 
startActivityForResult(captureIntent, IMAGE_PICKER_TAKE); 

을하지만 사진을 촬영하고 공격 후 OK, 카메라 응용 프로그램은 결코 내 응용 프로그램에 반환하지 않습니다. 그것이 다른 애플 리케이션에 의해 읽을 수 있어야한다고 생각 getFilesDir()에 의해 반환 된 디렉토리에 있기 때문에 그것이 전달 된 파일에 액세스 할 수 없기 때문에 나는 이것을 추측하고있다. setReadable() 설정을 시도했지만 그것을 고칠 didnt. 사용할 수있는 내부 저장소에 다른 디렉토리가 있습니까?

* OR은 카메라 앱이 자체 파일 디렉토리에 사진을 저장하고 contentResolver로 읽을 수있는 URI를 전달할 수있는 방법입니다 (그림을 선택할 때와 같은 방식입니다). 갤러리에서). *

+1

외부 저장소는 이동식 SD 카드와 아무 관련이 없습니다. 오늘은 아니야. getFilesDir()는 내부 전용 메모리이며 다른 AP 용으로 액세스 할 수 없습니다. 그냥 외부 파일을 사용하십시오. – greenapps

+0

@greenapps 그렇다면 최신 장치에서 사용자가 SD 카드를 가지고 있지 않더라도 외부 메모리를 사용할 수 있습니까? – Siavash

+0

수정하십시오. 예. 과연. – greenapps

답변

1

외부 저장소는 이동식 SD 카드와 아무 관련이 없습니다. 오늘은 아니야. getFilesDir()는 내부 전용 메모리이며 다른 AP 용으로 액세스 할 수 없습니다. 그냥 외부 파일을 사용하십시오.