我正在制作一款使用相机手电筒的应用。
我打开相机:
Camera cam = Camera.open();
当我启动我的应用时,如果另一个应用已经在使用相机,我收到错误:
java.lang.RuntimeException: Fail to connect to camera service
首先,如果相机已经被其他应用程序打开,有没有办法继续使用相机?
如果不可能,我希望我的应用程序显示“已使用相机”而不是崩溃的消息。
在这种情况下,如何检测相机是否已被其他应用程序打开?
答案 0 :(得分: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
}
答案 1 :(得分:3)
Android CameraService不允许两个客户端同时访问摄像头。即使您的设备有2个摄像头(正面和背面),您也只能操作其中一个,一次只能运行一个应用程序。你别无选择,只能像Sam建议的那样“优雅地退出”。