我在堆栈上看到了很多问题,但没有人告诉我是否会发生无法连接到相机服务,如何摆脱这个RuntimeException
。
我有一个相机应用程序工作正常,我已经注意释放资源,但如果用户以某种方式安装了其他未正确释放资源的应用程序,我的应用程序将面临RuntimeException:无法连接到相机服务
并因此崩溃,希望避免这种情况。
如果我单击原始相机应用程序,它会显示一个 AlertDialog
Camera error: Cannot connect to camera.
这就是我想要处理的事情。我正在尝试这段代码来处理它,但还不能成功。
try {
camera = Camera.open();
camera.setDisplayOrientation(90);
} catch (RuntimeException e) {
// TODO: handle exception
Log.d("Inside RunTime exception", e+"//");
camera.setErrorCallback(errorCallback);
reConnectCameraVideo();
} catch(Exception e) {
finish();
}
但相机对象在 camera.setErrorCallback
上返回 null,因为它无法打开。
最佳答案
setErrorCallback()
不能用于Camera
无法打开的情况。您似乎仍在尝试继续使用相机
- AFAIK,如果其他应用程序泄漏了相机
,则除非用户重新启动手机,否则这是不可能的。只需显示您自己的消息即可达到此目的。
另外:
使用错误日志服务,例如 ACRA、Flurry、BugSense 等。
永远不要由于异常而盲目地完成 Activity ,就像在最后一个
catch
block 中一样。始终采取措施让用户和/或您(通过错误日志服务)了解异常
关于java - 无法连接相机服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7783322/