为什么相机闪光灯没有打开并且 CameraAccessException class 带有红色下划线?

Why is the camera flash not turning on and the CameraAccessException class is underlined red?

我正在尝试制作手电筒应用程序,但无法正确打开它。我使用以下逻辑将其打开。请让我知道我哪里出错了。当我 运行 在我的 android phone 上 运行 时,它 运行 正常但手电筒不启动。

if (count[0] == 0) {
    count[0] = 1;
    ((TransitionDrawable) imageView.getDrawable()).startTransition(3000);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        CameraManager camManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
        String cameraId = null; // Usually back camera is at 0 position.
        try {
            cameraId = camManager.getCameraIdList()[0];
            camManager.setTorchMode(cameraId, true);   //Turn ON
        } catch (CameraAccessException e) {
            e.printStackTrace();
        }
    }
} else {
    count[0] = 0;
    ((TransitionDrawable) imageView.getDrawable()).reverseTransition(3000);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        CameraManager camManager1 = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
        String cameraId = null; // Usually back camera is at 0 position.
        try {
            cameraId = camManager1.getCameraIdList()[0];
            camManager1.setTorchMode(cameraId, false);   //Turn ON
        } catch (CameraAccessException e) {
            e.printStackTrace();
        }
    }
}

您编写的代码在 Android Marshmallow+ 上完全可用。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

此行检查您 运行 应用所在的 Android 版本。它仅在 Android 版本 6+(API 级别 23+)上执行 if 块中的代码。

您需要添加 else 部分,使用旧的打开手电筒的方法,如下所示:How to turn on camera flash light programmatically in Android?