2012-05-07 3 views
1

카메라 앱을 사용하여 사진을 찍는 중 문제가 발생했습니다. & 내 앱에서 사용하기 전에 사진이 삭제됩니다. 특정 장치에서만 발생합니다 (Samsung Galaxy S2, Samsung Galaxy Tab 10.1 및 LG., 모델을 기억하지 않음). 내 앱의 각 액티비티는 화면 방향을 세로로 설정합니다 (manifest : android : screenOrientation = "portrait"). 문제를 재현하는 방법 : 1. 내 앱에서 '사진 찍기'버튼을 누르면 카메라 앱이로드됩니다. 2. 사진을 세로로 가져 와서 내가 제공 한 URI를 기반으로 적절한 위치에 파일을 만듭니다. &은 미리보기를 카메라 앱에 표시합니다. 3. 장치를 세로로 유지하여 & "이미지 저장"을 클릭합니다 (내 앱으로 돌아갑니다). 4. 앱으로 돌아 가면 파일이 존재하는지 확인하고 그렇지 않은지 확인합니다.Android - 카메라 의도 - 사진이 삭제되었습니다.

사진을 세로로 넣은 다음 장치를 가로 방향 (미리보기가 표시 될 때)으로 돌린 다음 "이미지 저장"(가로 방향)을 누르면 사진이 삭제되지 않습니다.

가로로 사진을 찍은 다음 (저장을 누르면 가로로 장치를 그대로두면) 사진이 삭제되지 않습니다.

사진을 가로로 넣은 다음 미리보기를 세로로 회전하면 사진이 삭제되지 않습니다.

저는 &으로 googled &을 읽었습니다. 이걸 알아 내려고 노력했습니다.

& 사진을 세로로 저장하면 내 앱으로 돌아 왔을 때 내 앱이 가로로 표시되고 세로로 회전합니다.

아무런 도움이되지 않습니다 (답변이있는 다른 게시물에 대한 링크 일지라도).

감사합니다 :)

다음

내 코드의 일부이다 (문제가 발생했을 때, _cameraFileUri가 null) :

 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

     _cameraFileUri = Uri.fromFile(new File(_tempFolder, "tempFromCamera.jpg")); 

     intent.putExtra(MediaStore.EXTRA_OUTPUT, _cameraFileUri); // set the image file name 

     // start the image capture Intent 
     startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); 


        if (_cameraFileUri != null) { 

        File origFile = new File(_cameraFileUri.getPath()); 

        resizePhoto(origFile); 

        showPhoto(); 

       } else { 
        Toast.makeText(getApplicationContext(), "Error: Capture Photo Failed.", Toast.LENGTH_LONG).show(); 

       } 
+0

참고 : startActivityForResult는 실제로 자체 루틴에 try/catch 블록으로 둘러싸여 있습니다. if (_cameraFileUri! - null)은 결과 코드를 검사하는 코드 블록에서 "onActivityResult"에 있습니다. 다시 게시 한 후 내 게시물 및 모든 내용을 생략했습니다. 약간 이상하게 보입니다. 명확히하고 싶었다 :) – Chris

+0

나는 정직하게이 포럼에 게시하기 전에 좋은 주를 기다렸다. 나는 그것을 게시하자 마자 그 대답을 알아낼 것임을 알았다. 앱 회전이 경품이었습니다. 그것은 액티비티를 재현하기 때문에, onCreate 메소드를 재실행하고있었습니다. "집 유지"에 대한 임시 폴더에있는 파일을 삭제합니다. 나는 "onCreate"에서 이것을한다. 그래서 응용 프로그램이 회전하고 저장소에서 임시 파일을 삭제하는 "onCreate"를 통해 다시 실행합니다 (duh). :) – Chris

+1

당신은 알아 냈습니다. 당신이 그것을 풀 었다고 말하고 있다는 것을 깨닫는 데는 어느 정도 시간이 걸렸습니다. 아무도 elsse가 조사 시간을 들일 수 없도록 귀하의 의견을보다 분명하게하십시오. – png

답변

0

죄송합니다,이 하나가 해결 된 것입니다. 나는 정직하게이 포럼에 게시하기 전에 1 주일을 기다렸다. 나는 그것을 게시하자 마자 그 대답을 알아낼 것임을 알았다.

앱 회전은 경품이었습니다. 그것은 액티비티를 재현하기 때문에, onCreate 메소드를 재실행하고있었습니다. "집 유지"에 대한 임시 폴더에있는 파일을 삭제합니다. 나는 "onCreate"에서 이것을한다. 따라서 onCreate가 다시 실행되면 카메라가 Temp 폴더에 넣은 사진이 삭제됩니다.

관련 문제