2012-09-05 115 views
2

我有这样的代码,它完全在爱立信XPERIA,但是当我测试在SAMSUNG ACE该应用时,出现错误:意图图像捕捉数据== NULL

数据= NULL

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); 

任何想法,为什么发生这种情况?

回答

4

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

如果您包含额外的内容,则应在您收到RESULT_OK后,从文件中读取输出内容。或者您可以删除EXTRA_OUTPUT以使结果中的数据在所有设备上可靠。请注意,这将返回一个低分辨率图片,因为意图系统不会构建为传递大量数据。

+1

我应该用什么然后EXTRA_OUTPUT insted? – Neha