在什么情况下,当捕获图片使用MediaStore.Extra_Output时,文件什么都没有

时间:2016-03-23 11:54:51

标签: android image file camera mediastore

以下是我捕捉图像的方法

Intent getImageByCamera = new Intent("android.media.action.IMAGE_CAPTURE");
MyConst.file = new File(Util.Second_PATH,System.currentTimeMillis() + ".jpg");                          getImageByCamera.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(MyConst.file));
startActivityForResult(getImageByCamera);

我的文件路径如下:

Util.Second_PATH = Environment.getExternalStorageDirectory()
            + File.separator
            + "baletu"
            + File.separator
            + "images/";

我无法在某些设备上获取图像文件。

在什么情况下会发生这种情况,以便我可以解决问题?

1 个答案:

答案 0 :(得分:0)

  

下面是我如何捕捉图像

您没有使用EXTRA_OUTPUT。因此,您的图片应该是一个缩略图,从getData().getExtra("data")的{​​{1}} Intent获取,用于onActivityResult()来电{。}}。

  

我的文件路径如下:

不要使用字符串连接来创建文件路径。使用正确的startActivityForResult()构造函数,它可以处理File有或没有尾随目录分隔符的情况。

另请注意,如果您开始使用Environment.getExternalStorageDirectory()a file: Uri may not work on the next version of Android

  

在什么情况下会发生这种情况

相机应用有bug。有超过8,000个Android设备型号。这些型号有数百种内置相机应用,还有其他相机应用可供下载。有些人有EXTRA_OUTPUT的错误实施。将图像捕获委派给第三方应用程序是不可靠的。要么生活在那个事实中(并且优雅地失败,告诉用户他们的设备的相机应用程序是错误的)或者直接使用相机API来拍照。