我在堆栈上看到了很多问题,但是没有人知道是否会发生连接到相机服务的失败,如何摆脱这个RuntimeException
。
我有一个相机应用程序工作正常,我已经注意释放资源,但如果用户安装另一个没有正确释放资源的应用程序,我的应用程序面临RuntimeException: Fail to connect to camera Service
,因此崩溃了,想要避免这种情况。
如果我点击原始相机应用程序,它会显示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,因为它不会打开。
答案 0 :(得分:1)
setErrorCallback()
不能用于Camera
无法打开的情况。您似乎仍尝试使用Camera
- AFAIK这是不可能的,直到用户重新启动手机,如果其他应用程序泄露了Camera
。只需显示您自己的消息即可。
此外:
使用错误记录服务,如ACRA,Flurry,BugSense等。
永远不要盲目地完成由于异常而导致的活动,就像在上一个catch
块中一样。始终做一些事情让用户和/或您(通过错误记录服务)了解异常