2014-11-13 72 views
0

我试图让我的应用程序从相机拍摄照片,然后将其保存到设备存储器中。在下面的代码中,我尝试获取SD卡的路径,然后用相机捕获的数据创建一个文件。但是,我收到FileNotFoundException。代码工作得很好,直到这一点,并且日志显示存储在data []中的字节数量,所以我假设相机不是问题。任何帮助将不胜感激......谢谢!Android - 从相机拍摄并保存图像

PictureCallback jpegCallback = new PictureCallback() { 
    public void onPictureTaken(byte[] data, Camera camera) { 
     Log.d("testing", "wrote bytes: " + data.length); 

     File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); 
     File file = new File(path, "Image.jpg"); 

     try { 
      OutputStream os = new FileOutputStream(file); 
      os.write(data); 
      os.close(); 

      MediaScannerConnection.scanFile(instance, new String[] { file.toString() }, null, 
        new MediaScannerConnection.OnScanCompletedListener() { 
       public void onScanCompleted(String path, Uri uri) { 
        Log.d("ExternalStorage", "Scanned " + path + ":"); 
        Log.d("ExternalStorage", "-> uri=" + uri); 
       } 
      }); 
     } catch (IOException e) { 
      Log.d("testing", "error writing file :("); 
     } finally { 
      Log.d("testing", "finally..."); 
      camera.stopPreview(); 
      camera.release(); 
      camera = null; 
      Toast.makeText(getApplicationContext(), "Image Taken!", Toast.LENGTH_LONG).show(); 
     } 
    } 
}; 

回答

0

你有没有尝试过这样的:

Environment.getExternalStorageDirectory().getAbsolutePath(); 

这应该给你一个路径到SD卡。

+0

是的,我其实只是意识到我的问题......在许可中的错字哈哈现在都很好 –

相关问题