java - 无法连接相机服务

标签 java android android-camera

我在堆栈上看到了很多问题,但没有人告诉我是否会发生无法连接到相机服务,如何摆脱这个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/

相关文章:

android - 中断 MediaPlayer

android - JavaCV 录像机方向在纵向模式下不正确

android - 在某些手机中拍摄时照片会旋转 90 度

java - 一个流中的多个 "match"检查

java - 实例的局部变量/方法的范围是什么

java - Netty 消息优先级

android - 如何知道ViewPager在android中已经滚动了一半的屏幕

android - Firemonkey:如何检测操作系统(Android/iOS)何时关闭

android - 在 Android 上的 OpenCV 中查找相机的框架参数

java - java中jmenu项的setAccelerator