2016-07-26 15 views
0

私はAndroidのカメラAPIに新たなんだが、とのコードに呼び出さPictureCallbackがありますを与える:保存画像はFileNotFoundExceptionを()

outStream = new FileOutputStream(path); 
:例外がこのラインに指摘
 PictureCallback jpegCallback = new PictureCallback() { 
      public void onPictureTaken(byte[] data, Camera camera) { 
      // Save the image JPEG data to the SD card 
      FileOutputStream outStream = null; 
      try { 
       String path = Environment.getExternalStorageDirectory() +"\test.jpg"; 

      outStream = new FileOutputStream(path); 
      outStream.write(data); 
      outStream.close(); 
     } catch (FileNotFoundException e) { 
      Log.e(TAG, "File Note Found", e); 
     } catch (IOException e) { 
      Log.e(TAG, "IO Exception", e); 
     } 
     } 
    }; 

私はAndroidの世界には初めてのので、正確にはどこにいるのかわかりませんEnvironment.getExternalStorageDirectory()が指摘しています。

例外は言う:

Java.io.FileNotFoundException:/ストレージ/エミュレート/ 0をest.jpg:EACCES(パーミッション拒否)

をしかし、私のマニフェスト内:オープン に失敗しました:

<uses-feature android:name="android.hardware.Camera"/> 
    <uses-permission android:name="android.permission.CAMERA"/> 

編集:私は

へのパスを固定

String path = Environment.getExternalStorageDirectory() +"/test.jpg";

しかし、まだ私を与える:

java.io.FileNotFoundException:/storage/emulated/0/test.jpg:オープン に失敗しました:EACCES(パーミッション拒否)

答えて

1

Androidはlinuxを使用しています。パス区切り文字は/ではなく、\です。 /storage/emulated/0/test.jpg:あなたが望んだ場合にもタブの\tプットは、実際の\あなたは\\t

+0

こんにちは例外は '言う今回java.io.FileNotFoundException:/storage/emulated/0/test.jpg:オープンに失敗しました:EACCES(パーミッションが拒否されました) ' –

+0

あなたはAndroidManifestで権限を追加していないので、 – Eenvincible

+0

こんにちは、私の質問で私のマニフェストを見てください –

1

java.io.FileNotFoundExceptionを使用する必要がオープン 失敗しました:EACCES(パーミッションが拒否されました)

あなたが追加するのを忘れていなければなりません

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
+0

おかげで兄、私はあなたをupvoted、しかし、私は@ガベセガンの応答を受け入れるよ。 :) –