我有一个手电筒/手电筒应用程序使用这个代码
打开
params = camera.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(params);
camera.startPreview();关上
params = camera.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(params);
camera.stopPreview();然而,现在
android.hardware.Camera已被废弃,建议使用新的camera2 api。
对于如何使用camera2打开/关闭设备的手电筒,有什么帮助吗?
谢谢你的帮助
发布于 2016-05-23 01:58:04
首先,不推荐的android.hardware.Camera API仍然运行良好,如果您需要支持比5.0olliop更早的版本,则仍然需要使用它。
最新的Android版本(Android或更新版本)最简单的选择是新的直接手电筒控制:CameraManager.setTorchMode。
这是非常简单的使用,不需要相机的许可。
因此,我建议如下:
预API 23,使用不推荐的Camera和您现有的方法(不要忘记设置预览显示,一个虚拟SurfaceTexture是最简单的)。您将需要相机权限和运行时权限请求处理。
API 23或更高版本,使用setTorchMode调用,您甚至不需要请求任何特定的运行时权限。
发布于 2018-03-07 05:58:03
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
mCameraManager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);
try {
for (String camID : mCameraManager.getCameraIdList()) {
CameraCharacteristics cameraCharacteristics = mCameraManager.getCameraCharacteristics(camID);
int lensFacing = cameraCharacteristics.get(CameraCharacteristics.LENS_FACING);
if (lensFacing == CameraCharacteristics.LENS_FACING_FRONT
&& cameraCharacteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE)) {
mCameraId = camID;
break;
} else if (lensFacing == CameraCharacteristics.LENS_FACING_BACK
&& cameraCharacteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE)) {
mCameraId = camID;
}
if (mCameraId != null) {
mCameraManager.setTorchMode(mCameraId, true);
}
}
} catch (CameraAccessException e) {
e.printStackTrace();
}
}https://stackoverflow.com/questions/37355240
复制相似问题