意图图像捕获数据== null

时间:2012-09-05 17:12:03

标签: android image android-intent capture

我有这个代码,它在爱立信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);

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:5)

当您使用EXTRA_OUTPUT并指定文件时,您通常不会通过结果意图获取任何图像数据作为额外的。相反应用程序应该将数据写入您指定的文件。

如果您包含额外费用,则应在收到RESULT_OK后阅读文件中的输出。或者,您可以删除EXTRA_OUTPUT以使结果意图中的数据在所有设备上可靠。请注意,这会返回低分辨率图片,因为意图系统不是为了提供大量数据而构建的。