2012-07-20 5 views
0

문제가 있습니다. 내 자신의 응용 프로그램에서 사진 인 텐트가있는 빌드 인 사진 응용 프로그램부터 시작합니다.삼성 넥서스에서 사진이 저장되지 않습니다.

 String photoName = System.currentTimeMillis() + ".jpg"; 

     File file = new File(getFilesDir(),//Environment.getExternalStoragePublicDirectory(
       //Environment.DIRECTORY_DCIM), 
       photoName); // Anlegen der Datei im entsprechenden 
          // Verzeichnis 
     FileOutputStream fos = null; 
     try { 
      fos = openFileOutput(photoName, Context.MODE_WORLD_WRITEABLE); 
     } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     try { 
      fos.close(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     outputFileUri = Uri.fromFile(file); 
     intentPhoto.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file)); 
     //startActivity(intentPhoto); 
     startActivityForResult(intentPhoto, TAKE_PICTURE); 

이것은 활동을 시작하는 코드입니다. 보시다시피, 내가해야할 첫 번째 일은 디렉토리에 파일을 설정 한 다음 파일을 저장할 파일의 위치를 ​​지정하는 것입니다.

하지만 사진을 찍을 때마다 사진 디렉토리에 저장되지 않습니다. 그림을 저장하는 유일한 방법은 전화를 끄고 다시 시작하는 것입니다. 그러면 내가 찍은 모든 사진이 거기에 있습니다. 이것은 4.1.1로 마지막 업데이트 된 이후에 발생합니다. 내가 전화를 업데이트했기 때문에 모든 것이 정상적으로 작동했지만 업데이트 이후이 문제가 발생했습니다.

누군가 나를 도울 수 있습니까? 누구도 같은 문제가 있습니까?

+0

"삼성 Nexus"라고 할 때 "Nexus S"또는 "Galaxy Nexus"를 의미합니까? 둘 다 삼성에서 제조 한 것입니다. – FoamyGuy

+0

또는 Nexus 태블릿인가요? – m0skit0

+0

파일을 닫으려고하면 어떤 예외도 발생합니까? 예. 스택 트레이스가 인쇄되는 걸 보셨나요? – slayton

답변

1

이 작동 미세 이제 문제는 내가 함께, 내 자신에 의해 파일을 만드는 것이였다

File file = new File(..); 

하지만 당신은 사용해야합니다 :

ContentValues values = new ContentValues(); 
values.put(MediaStore.Images.Media.TITLE, "IMG_"+ timeStamp+.jpg"); 

을 그리고 의도에 넣어 전화를 다시 시작하지 않고 한 번에 파일을 저장하십시오.

4

새 파일을 스캔 할 제공해야합니다 : 스캐너가 그것을 발견했습니다 때 알림을받을 필요가없는 경우

MediaScannerConnection.scanFile(this, 
      new String[] { file.toString() }, null, 
      new MediaScannerConnection.OnScanCompletedListener() { 
     public void onScanCompleted(String path, Uri uri) { 
      // code to execute when scanning is complete 
     } 
}); 

당신은 OnScanCompletedListener에 대한 null 인수를 전달할 수 있지만, 최소한 로깅 문을 넣고 싶을 수도 있습니다.

관련 문제