所以我正在尝试使用以下代码启动相机活动:
//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,但返回到结果处理程序的意图数据为空。
- 另外 EXTRA_OUTPUT 似乎完全被忽略了,我不知道它在哪里保存图像。
在厄里斯:
- 意图数据恢复正常
- EXTRA_OUTPUT 也被忽略,但它将图像保存到常规媒体存储中
/sdcard/dcim/100media
所以我的问题是:有什么方法可以让我尝试使用标准相机活动获得一致的行为?我可以编写一个自定义活动来尝试让它以我想要的方式工作,但我更愿意避免这条路线。