내 앱과 함께 찍은 사진을 특정 디렉토리에 저장하려고합니다. 그것은 작동하지만, 나는 애플 리케이션을 마친 것에 가까워지고 새로운 설치를 시도하고 싶었다. 사진을 저장하고 있던 폴더를 삭제하고 다시 만들지 않습니다. 여기 내 코드가있다. 디렉토리 생성에 실패했습니다 ... Java, Android
PictureCallback jpegCallback = new PictureCallback() { // public void onPictureTaken(byte[] data, Camera camera) { FileOutputStream outStream = null; try { android.os.Environment.getExternalStorageState(); // create a File object for the parent directory File PhotoDirectory = new File( android.os.Environment.getExternalStorageDirectory()+ "/GrowJournalPhotos/"+journ_id+"/"+plant_id+"/"); // have the object build the directory structure, if needed. PhotoDirectory.mkdirs(); // create a File object for the output file File outputFile = new File(PhotoDirectory, "photo.jpg"); // now attach the OutputStream to the file object, instead of a String representation outStream = new FileOutputStream(outputFile); //----LINE 82----// // Write to SD Card outStream.write(data); outStream.close(); Log.d(TAG, "onPictureTaken - wrote bytes: " + data.length); setResult(RESULT_OK); finish(); } catch (FileNotFoundException e) { // e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { } Log.d(TAG, "onPictureTaken - jpeg"); } };그리고 IO 오류 :
08-23 13:26:18.263: WARN/System.err(9515): java.io.FileNotFoundException: /sdcard/GrowJournalPhotos/geo a/1/photo.jpg 08-23 13:26:18.263: WARN/System.err(9515): at org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:244) 08-23 13:26:18.263: WARN/System.err(9515): at java.io.FileOutputStream.(FileOutputStream.java:97) 08-23 13:26:18.263: WARN/System.err(9515): at java.io.FileOutputStream.(FileOutputStream.java:69) 08-23 13:26:18.263: WARN/System.err(9515): at com.grower.beta.takephoto$3.onPictureTaken(takephoto.java:82) 08-23 13:26:18.263: WARN/System.err(9515): at android.hardware.Camera$EventHandler.handleMessage(Camera.java:323) 08-23 13:26:18.263: WARN/System.err(9515): at android.os.Handler.dispatchMessage(Handler.java:99) 08-23 13:26:18.263: WARN/System.err(9515): at android.os.Looper.loop(Looper.java:123) 08-23 13:26:18.263: WARN/System.err(9515): at android.app.ActivityThread.main(ActivityThread.java:4595) 08-23 13:26:18.263: WARN/System.err(9515): at java.lang.reflect.Method.invokeNative(Native Method) 08-23 13:26:18.263: WARN/System.err(9515): at java.lang.reflect.Method.invoke(Method.java:521) 08-23 13:26:18.263: WARN/System.err(9515): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 08-23 13:26:18.263: WARN/System.err(9515): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 08-23 13:26:18.263: WARN/System.err(9515): at dalvik.system.NativeStart.main(Native Method) 08-23 13:26:18.263: DEBUG/CameraDemo(9515): onPictureTaken - jpeg
나는 외부 저장소에 쓸 수 있도록 설정 권한을 가지고 않습니다. 디렉토리를 수동으로 만들면 컴퓨터에 드라이브로 마운트하고 "/ sdcard/GrowJournalPhotos /"라는 첫 번째 폴더를 만드는 것이 좋습니다. 필요한 경우 앱이 전체 디렉토리를 만들지 않도록해야합니다.
감사합니다. 내가 기대하는 방식으로 작동합니다. 위 코드를 변경했습니다. 꺼져 있으면 알려줘. – Brian