Extra_Output在ERIS上忽略,导致数据在G1上返回null
-
28-09-2019 - |
题
因此,我试图使用以下代码启动相机活动:
//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上:
- 尽管结果代码显示了result_ok,但返回到结果处理程序的意图数据为null。
- 另外,Extra_output似乎完全忽略了,我不知道它在哪里保存图像。
在Eris上:
- 意图数据又回来了
- extra_output也被忽略了,但是它将图像保存到常规媒体存储
/sdcard/dcim/100media
因此,我的问题是:有什么方法可以为我尝试使用标准摄像头活动而尝试做什么?我可以写一项自定义活动以尝试按照我想要的方式工作,但是我希望避免那条路线。
解决方案
我对您的问题没有答案,因为我是Java/Android开发世界的新手。但是我正在尝试类似于您所做的事情,除了我想简单地拍摄图片,然后将其附加到电子邮件中。
我实现了您示例的一部分,并能够验证摄像机是否创建了我指定的文件,并且如果我在下一张图片中使用相同的文件名,则它将覆盖上一个文件,这是我所期望的。
但是我真正要说的是,也许您必须测试是否存在PAT“/sdcard/...”是否存在。另外,您可以通过传递通往下一个活动的路径来简化过程。
祝你好运,
杰米·欧文(Jamie Irwin)
不隶属于 StackOverflow