以下是我捕捉图像的方法
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/";
我无法在某些设备上获取图像文件。
在什么情况下会发生这种情况,以便我可以解决问题?
答案 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来拍照。