2

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

活动结果

if (requestCode==CAMERA_REQUEST && resultCode==RESULT_OK){
                    Bundle extras=data.getExtras();
                    bmp=(Bitmap)extras.get("data");
                    image.setImageBitmap(bmp);
                    image.setVisibility(0);

知道为什么会这样吗?

4

1 回答 1

6

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

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

于 2012-09-05T17:18:53.043 回答