检测相机是否已打开

Jec*_*imi 2 android android-camera

我正在制作一款使用相机手电筒的应用程序.

我打开相机:

 Camera cam = Camera.open();
Run Code Online (Sandbox Code Playgroud)

当我启动我的应用程序时,如果另一个应用程序已经在使用相机,我收到一个错误:

java.lang.RuntimeException: Fail to connect to camera service
Run Code Online (Sandbox Code Playgroud)

首先,如果已经被另一个应用程序打开,有没有办法仍然使用相机?

如果不可能,我希望我的应用程序显示消息"相机已在使用中"而不是崩溃.

在这种情况下,如何检测相机是否已被其他应用程序打开?

Sam*_*Sam 5

如果相机正在被另一个应用程序使用,我认为在该应用程序以某种方式释放它之前,您可以做很多事情.但是,您可以实现try-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
}
Run Code Online (Sandbox Code Playgroud)