为什么相机闪光灯没有打开并且 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?
我正在尝试制作手电筒应用程序,但无法正确打开它。我使用以下逻辑将其打开。请让我知道我哪里出错了。当我 运行 在我的 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?