Tuo*_*asR 5 java camera android
我在Android应用中使用手机的相机来拍照.我正在使用Intents来使用内置的相机应用程序,我使用以下代码:
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(FILEPATH)));
startActivityForResult(intent, ACTIVITY_NATIVE_CAMERA_AQUIRE);
Run Code Online (Sandbox Code Playgroud)
它工作正常,相机也可以显示出来.我可以拍照,手机给我提供了三个选项:取消,重拍,确定.前两个工作,按取消将用户返回到应用程序,但按下确定没有任何反应.显然onActivityResult没有被调用,相机只是停留在屏幕上.调试器中也没有.
使用Android 2.2.1在Nexus One上运行应用程序.运行Android 2.0的模拟器上的问题相同.
编辑:使用HTC的Sense UI在运行Android 2.2的HTC Desire上进行测试:效果很好.电子邮件中没有任何内容,也没有Google N1.
编辑2:似乎HTC Desire图像获取活动在它确实返回的意义上更好地工作,但是它忽略了EXTRA_OUTPUT设置并且仅在onActivityResult -call中返回一个小图像.在手机连接到计算机时检查ddms控制台我看到手机正在将图像存储在SD卡上,但路径不会传回我的应用程序.它开始看起来没有可靠的方法来使用相机意图,并获得一个合理大小的图像.坏,坏,坏.
经过一些研究、测试和纯粹的运气,我成功解决了这个问题。
如果 Intent 的 EXTRA_OUTPUT 选项包含指向设备内部存储器的文件 URI,则调用将失败。如何失败取决于设备。HTC Desire 表面工作正常,但无法返回全尺寸图像。另一方面,Google N1 拒绝离开相机活动。
当我更改文件 URI 以指向存储卡时,它在 Desire 和 Google N1 上都能完美运行。
总结一下:存储全尺寸图像的路径必须指向SD卡。
| 归档时间: |
|
| 查看次数: |
1286 次 |
| 最近记录: |