0

다음 스크립트에 문제가 있습니다. 내가 원하는 폴더에 이미지를 저장하고 있지만 DCIM 폴더에 이미지를 저장하고 있습니다. 원하지 않는 이미지입니다. 그렇다면 무엇을 변경해야합니까? 내 폴더에 저장 하시겠습니까? 사진 촬영 한 이미지를 DCIM 폴더가 아닌 폴더에만 저장하는 방법

**

private static File getOutputMediaFile(int type) { 

     // External sdcard location 
     File mediaStorageDir = new File(
     // Environment.getDataDirectory()(Environment.) 
       Environment.getExternalStorageDirectory().toString() 
         + "/Android/data/com.itbstudios.shoppinglist/Shopping List"); 

     // Create the storage directory if it does not exist 
     if (!mediaStorageDir.exists()) { 
      if (!mediaStorageDir.mkdirs()) { 
       Log.d(IMAGE_DIRECTORY_NAME, "Oops! Failed create " 
         + IMAGE_DIRECTORY_NAME + " directory"); 
       return null; 
      } 
     } 

     // Create a media file name 
     String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", 
       Locale.getDefault()).format(new Date()); 
     File mediaFile; 
     if (type == MEDIA_TYPE_IMAGE) { 
      mediaFile = new File(mediaStorageDir.getPath() + File.separator 
        + "IMG_" + timeStamp + ".itb"); 
     } else { 
      return null; 
     } 

     return mediaFile; 
    } 

**

  • 테이크 저장

    **

    • 사진

    **

    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    
         fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); 
    
         intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); 
    
         // start the image capture Intent 
         startActivityForResult(intent, 100); 
    

    감사합니다!

+0

흠, 나는 DCIM 폴더에 저장하지 않는다는 것을 알고 있지만 갤러리 응용 프로그램에는 표시됩니다. 갤러리 앱이 모든 파일을 검색하여 미디어 파일을 찾습니다. 검색 폴더를 막으려면 .nomedia라는 이름의 빈 파일을 폴더에 추가해야합니다. –

+0

좋아, 지금 해보겠습니다 – Iosif

+0

하드 코드 경로를 절대로 사용하지 마십시오. 'getExternalFilesDir()'을 사용하십시오. – CommonsWare

답변

2

내 전략 : 질문에 설명 된대로 사진을 캡처하여 내부 메모리 (data/data/com.package ...)에 저장 한 후이 사진을 공용 폴더 (DCIM/MEDIA/100MEDIA)에서 삭제하십시오. 다음 방법 (그 폴더에서 마지막으로 찍은 사진을 삭제하십시오 ...) :

+0

좋아, 내가 곧 다시 시도해 볼게 후 결과 : – Iosif

+0

크래시 http://pastebin.com/MqYu3bJY – Iosif

+0

와 같이 쿼리가 깨지므로 – Iosif