我正在尝试在Android应用程序中实现摄像头界面,但是遇到了问题。当我尝试实现CameraDevice.StateCallback时,我必须重写抽象方法(显然是……),但是onError会生成错误!

这是我在Android Studio中重写时得到的:

        @Override
    public void onError(@NonNull CameraDevice cameraDevice, @IntDef(value = {CameraDevice.StateCallback.ERROR_CAMERA_IN_USE, CameraDevice.StateCallback.ERROR_MAX_CAMERAS_IN_USE, CameraDevice.StateCallback.ERROR_CAMERA_DISABLED, CameraDevice.StateCallback.ERROR_CAMERA_DEVICE, CameraDevice.StateCallback.ERROR_CAMERA_SERVICE}) int i) {

    }


是导致错误的@IntDef部分,但我不知道@IntDef的工作原理,所以有人可以告诉我吗?简单删除它是否安全?如果是这样,那为什么首先存在呢?

最佳答案

是的,可以安全删除。这是我对onError的覆盖的外观:

public void onError(CameraDevice camera, int error) {
 //do stuff
}


您可以将int错误值与https://developer.android.com/reference/android/hardware/camera2/CameraDevice.StateCallback.html#ERROR_CAMERA_DEVICE中的文档进行比较

10-08 13:02