我在一个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);
它工作得很好,相机被打开。我可以拍照,手机会显示三个选项:取消、重拍和确定。前两个选项可以使用,按下取消会将用户返回到应用程序,但是按下确定后没有反应。显然,onActivityResult没有被调用,相机仍停留在屏幕上。调试器中也没有任何信息。
在运行Android 2.2.1的Nexus One上运行应用程序。在运行Android 2.0的模拟器上也有同样的问题。
编辑:在运行HTC Sense UI的Android 2.2上测试:完美地工作。在模拟器和Google N1上没有任何信息。
编辑2:似乎HTC Desire图像获取活动效果更好,因为它确实返回了,但它忽略了EXTRA_OUTPUT设置,并且只在onActivityResult调用中返回了一个小图像。当手机连接到计算机时,在ddms控制台上检查,我看到手机正在将图像存储在SD卡上,但路径没有传回我的应用程序。看来没有可靠的方法来使用相机意图,并获得一个合理大小的图像。很糟糕,很糟糕,很糟糕。