在Eris上忽略EXTRA_OUTPUT,导致数据在G1上返回null

所以我尝试使用以下代码启动Camera活动:
//In public void captureImage()
...
Intent cameraIntent = new Intent(MediaStore.ACTION_CAPTURE_IMAGE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,
                      Uri.fromFile(new File("/sdcard/image.jpg")));
startActivityForResult(cameraIntent, REQUEST_CAMERA);
然后处理结果:
//In onActivityResult()
...
case REQUEST_CAMERA:
  Intent intent = new Intent (CurrentScreen.this, NextScreen.this);
  intent.putExtra(data);
  startActivity(intent);
  CurrentScreen.this.finish();
...
我使用
intent.putExtra(data)
将小位图附加到意图,并在下一个活动中将其用作缩略图,并且全尺寸文件应该保存为
/sdcard/image.jpg
。 这是预期的行为(根据文档),为缩略图设置一个小位图,并保存一个大文件。然而,当在G1和Eris上测试时,我一直看到一些奇怪的行为。 在G1上: 虽然resultCode显示RESULT_OK,但返回给结果处理程序的intent数据为null。 另外EXTRA_OUTPUT似乎完全被忽略了,我不知道它在哪里保存图像。 在厄里斯: 意图数据回来了 EXTRA_OUTPUT也会被忽略,但它会将图像保存到
/sdcard/dcim/100media
的常规媒体商店 所以我的问题是:有什么方法可以使用标准相机活动获得我想要做的一致行为?我可以编写一个自定义活动来尝试让它按照我想要的方式工作,但我更愿意避开这条路线。     
已邀请:
我不熟悉您的问题,因为我是Java / Android开发世界的新手。但我正在尝试类似于你正在做的事情,除了我想简单地拍照然后将它附加到电子邮件消息。 我实现了你的部分示例,并且能够验证摄像机是否创建了我指定的文件,如果我使用相同的文件名作为下一张图片,它会覆盖以前的文件,这是我所期望的。 但我真正要说的可能是你必须测试pat /“sdcard / ...”是否真的存在。此外,您可以通过将路径传递到下一个活动来简化您的过程。 祝好运, 杰米欧文     

要回复问题请先登录注册