检查相机是否正忙于其他应用

时间:2017-03-26 21:36:18

标签: android camera android-camera

如果有任何应用正在使用相机,请跟踪以下代码

public boolean isCameraBusy() {
Camera camera = null;
try {
    camera = Camera.open();
} catch (RuntimeException e) {
    return true;
} finally {
    if (camera != null) camera.release();
}
 return false;
} 

我需要在onResume方法中使用这个..我的应用程序正在使用相机,所以每次恢复时它都会很忙.. 有没有办法绕过它?

2 个答案:

答案 0 :(得分:0)

您的代码获取相机实例然后将其释放 当你完成使用它而不是在获得对实例的引用之后你应该释放它。

你应该在onPause()方法上使用release方法

修改

然后你应该在onResume()上这样做:

    if (camera != null) camera.release();
    try {
        camera = Camera.open();
    } catch (Exception e) {
        //do something
    }

答案 1 :(得分:0)

您可以使用方法Camera.open(cameraId)

进行检查

如果相机将被其他应用程序打开,则会抛出异常。

示例:

public boolean isCameraUsebyAnotherApp() {
    Camera camerastatus = null;
    try {
        camerastatus = Camera.open();
    } catch (RuntimeException e) {
        return true;
    } finally {
        if (camerastatus != null) camerastatus.release();
    }
    return false;
}

这可以帮助你。