Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using both cameras on android: "Fail to connect to camera service"

I'm having troubles in accessing both (front and rear cameras at the same time). When turn on one camera it works. When i turn off first and turn on second it works. It gives following exception when i'm trying to turn on second camera while the first one is still showing the image.

E/AndroidRuntime(32325): FATAL EXCEPTION: main
E/AndroidRuntime(32325): java.lang.RuntimeException: Fail to connect to camera service
E/AndroidRuntime(32325):    at android.hardware.Camera.native_setup(Native Method)
E/AndroidRuntime(32325):    at android.hardware.Camera.<init>(Camera.java:265)
E/AndroidRuntime(32325):    at android.hardware.Camera.open(Camera.java:226)
E/AndroidRuntime(32325):    at com.example.videostreamer.MainActivity$CameraHandler.start(MainActivity.java:116)
E/AndroidRuntime(32325):    at com.example.videostreamer.MainActivity$2.onClick(MainActivity.java:74)
E/AndroidRuntime(32325):    at android.view.View.performClick(View.java:2532)
E/AndroidRuntime(32325):    at android.widget.CompoundButton.performClick(CompoundButton.java:99)

In the documentaion i found a phrase that says:

public static Camera open (int cameraId)

Since: API Level 9 Creates a new Camera object to access a particular hardware camera. You must call release() when you are done using the camera, otherwise it will remain locked and be unavailable to other applications. Your application should only have one Camera object active at a time for a particular hardware camera.

.. but i'm having only one Camera object for one hardware camera and I wanted to create second object for second device.

  1. Does anybody know if this is possible (I'm using Android 2.3.3)?
  2. The place: android.hardware.Camera.native_setup(Native Method) can suggest that probably it is hardware/driver limitation - I'm using HTC Sensation.
like image 340
Jakub Troszok Avatar asked Aug 27 '11 14:08

Jakub Troszok


People also ask

How do I fix camera in use by another app android?

Check If Another App Is Already Using Camera Open the multitasking menu on your Android phone, identify apps using the camera in the background and remove the app from the background process. Try to open the Camera app and it should work normally.

Can two apps use camera at the same time Android?

No. Access to a camera is exclusive. See the Camera documentation, which says: If your application does not properly release the camera, all subsequent attempts to access the camera, including those by your own application, will fail and may cause your or other applications to be shut down.

Why won't my camera connect to my apps?

To fix this problem, you should go to your Android Settings then tap on Apps to find Camera. Remove all updates for it, if it is possible, then clear the cache and data. You will need to force stop the camera app, then re-install the updates again. Test your camera if it is running again.


2 Answers

This question basically says it cannot be done, but there may be some hack. This lack of response from google groups tells me most likely not. Here is another no-response post on google groups. Here is another post discussing the use of two cameras at the same time.

So my initial answer is no, it is not possible. BUT there may be some workaround, you just may have to find it yourself because it isn't discovered yet :).

EDIT 11/21/11: Unfortunately I found even further proof that it cannot be done, official from Sprint/HTC here. I realize you are using a Sensation, and this is an EVO 4g, but I'm sure it still applies.

like image 109
Jack Avatar answered Oct 04 '22 01:10

Jack


Both cameras can be launched together as long as the hardware supports it. First you need to find the specific SoC used by your phone. You can find this by using the command

$ adb shell getprop

Chech the field [ro.board.platform], For Nexus 6 it returns

[ro.board.platform]: [msm8084]

Now you would need to check if this chipset has dual-ISP capability in hardware. For Qualcomm snapdragon chipsets you can find it here. For Samsung Exynos you can find it here. Now if your device supports dual camera and has latest OS installed in it, then you can use this application (ref) developed by Jens to verify if the dual camera works. It should probably work, it does work on my Nexus 6. Video: http://youtu.be/lt8N1Lpa9Zw

Thanks, Jai

like image 24
jaiprakashgogi Avatar answered Oct 03 '22 23:10

jaiprakashgogi