所以我尝试使用下面的代码来启动相机活动:EXTRA_OUTPUT忽视了厄里斯,导致数据对G1返回null
//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似乎被完全忽略,我不知道它在哪里保存图像。
在厄里斯:
- 的意图数据回来OK
- EXTRA_OUTPUT也将被忽略,但它是在
/sdcard/dcim/100media
所以保存图像到正规的媒体商店我的问题是这样的:有什么办法来获得一致的行为,我正在尝试使用标准相机活动?我可以写一个自定义活动来尝试让它按照我想要的方式工作,但我更愿意避开那条路线。
其实我确实有检查建立在我的应用程序,但我省略了我的帖子的那部分让事情变得更短。我最终不得不做的事情很可能是编写我自己的相机活动,因为从我一直在读的不一致是由于不同制造商在手机中包含的不同相机应用。并非所有人都能正确处理ACTION_IMAGE_CAPTURE意图。 – jvergeldedios 2010-12-09 06:21:17