【发布时间】:2011-03-02 02:51:29
【问题描述】:
我正在使用以下代码告诉系统我要拍照:
Intent intent = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE, null);
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, Uri
.fromFile(new File(filePath)));
startActivityForResult(intent, TAKE_PHOTO_ACTIVITY);
它第一次像冠军一样工作。随后的尝试产生以下异常:
电子/相机支架(8300): java.lang.RuntimeException: 失败 连接到相机服务 E/CameraHolder(8300):在 android.hardware.Camera.native_setup(Native 方法)E/CameraHolder(8300):在 android.hardware.Camera.(Camera.java:110) E/CameraHolder(8300):在 android.hardware.Camera.open(Camera.java:90) E/CameraHolder(8300):在 com.android.camera.CameraHolder.open(CameraHolder.java:100) E/CameraHolder(8300):在 com.android.camera.Camera.ensureCameraDevice(Camera.java:1626) E/CameraHolder(8300):在 com.android.camera.Camera.startPreview(Camera.java:1686) E/CameraHolder(8300):在 com.android.camera.Camera.access$5800(Camera.java:94) E/CameraHolder(8300):在 com.android.camera.Camera$5.run(Camera.java:949) E/CameraHolder(8300):在 java.lang.Thread.run(Thread.java:1096)
我想我必须以某种方式释放相机对象,但由于我没有直接获取它,所以我不知道该怎么做。有人可以帮帮我吗?
【问题讨论】:
-
你不应该做任何事情,我一直都在使用那个代码。您能否提供更多关于如何实际调用此代码以及如何处理结果的代码?此外,这是否可以在多个设备上重复?干杯。
-
另外,我们在这里讨论的是哪个版本的 Android?这会发生在模拟器上吗?
-
安卓 2.2、2.1。不,模拟器没有摄像头。
-
模拟器(2.1)应该有一个摄像头。此意图在设备上打开相机应用程序(不要在 2.2 emu 上执行此操作,因为相机应用程序将 FC),然后返回照片,因此 hte 模拟器将只返回卡通 android dude.Anyways,您使用的是哪个设备?是否有任何相机应用程序正在运行(例如,如果因为有人没有在另一个应用程序中释放相机而需要很长时间才能获取,那么事情会变得很糟糕)。
-
如果它第一次工作,它可能是一个发布问题。您是否尝试过在 startActivityForResult() 中释放相机
标签: android