我有这个代码,它在爱立信XPERIA中完美运行,但是当我在SAMSUNG ACE中测试应用程序时,出现错误:
数据=空
String file=Environment.getExternalStorageDirectory().getAbsolutePath()+ "/picture.jpg";
Intent i=new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
Uri output = Uri.fromFile(new File(archivo));
i.putExtra(MediaStore.EXTRA_OUTPUT, output);
startActivityForResult(i,CAMERA_REQUEST);
OnActivity结果
if (requestCode==CAMERA_REQUEST && resultCode==RESULT_OK){
Bundle extras=data.getExtras();
bmp=(Bitmap)extras.get("data");
image.setImageBitmap(bmp);
image.setVisibility(0);
知道为什么会这样吗?
答案 0 :(得分:5)
当您使用EXTRA_OUTPUT
并指定文件时,您通常不会通过结果意图获取任何图像数据作为额外的。相反应用程序应该将数据写入您指定的文件。
如果您包含额外费用,则应在收到RESULT_OK
后阅读文件中的输出。或者,您可以删除EXTRA_OUTPUT
以使结果意图中的数据在所有设备上可靠。请注意,这会返回低分辨率图片,因为意图系统不是为了提供大量数据而构建的。