2012-07-18 2 views
1

카메라의 손전등을 사용하는 앱을 만들고 있습니다. 내 응용 프로그램을 시작하면 다른 응용 프로그램이 이미 카메라를 사용하는 경우, 내가 오류 얻을카메라가 이미 열려 있는지 감지합니다.

Camera cam = Camera.open(); 

:

내가으로 카메라를 열

java.lang.RuntimeException: Fail to connect to camera service 

먼저, 어떤 방법이 다른 앱에서 이미 열어 본 카메라를 계속 사용 하시겠습니까?

가능하지 않은 경우 내 앱이 충돌하는 대신 '카메라가 이미 사용 중입니다'라는 메시지를 표시하고 싶습니다.

이 경우 카메라가 다른 앱에서 이미 열려 있는지 어떻게 알 수 있습니까?

답변

5

다른 응용 프로그램에서 카메라를 사용중인 경우 해당 응용 프로그램이 다른 방법으로 해제 할 때까지는 할 수있는 일이 많지 않다고 생각합니다. 그러나 try-catch 블록을 구현하여 예외를 catch 할 수 있습니다.

try { 
    Camera cam = Camera.open(); 
} 
catch(RuntimeException exception) { 
    Toast.makeText(this, "The camera and flashlight are in use by another app.", Toast.LENGTH_LONG).show(); 
    // Exit gracefully 
} 
+0

좋아, 이렇게하면 되겠다. 답변 주셔서 감사합니다. – Jecimi

3

Android CameraService는 두 개의 클라이언트가 동시에 카메라에 액세스하는 것을 허용하지 않습니다. 기기에 카메라가 2 개 (앞면과 뒷면) 인 경우에도 한 번에 1 개의 앱만 사용할 수 있습니다. Sam이 제안한대로 '우아하게 종료'할 수밖에 없습니다.

+0

이 정밀도를 가져 주셔서 감사합니다. – Jecimi

관련 문제