在Android中同时打开不支持闪光灯的手电筒和相机



我正在为京瓷E6820编写一个高度专业化的应用程序,该应用程序需要设备的广角摄像头和手电筒同时打开。

我正在使用 Camera2 Android API。问题是默认情况下广角相机不支持闪光灯,因此如果我尝试通过执行以下操作同时打开手电筒和广角相机:

mPreviewRequestBuilder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_TORCH);
mPreviewRequest = mPreviewRequestBuilder.build();
mCaptureSession.setRepeatingRequest(mPreviewRequest, mCaptureCallback, mBackgroundHandler);

我收到一个错误,说:

W/LegacyRequestMapper: mapAeAndFlashMode - Ignore flash.mode == TORCH;camera does not support it

我试图通过使用常规后置摄像头(支持闪光灯)打开闪光灯来解决此问题,而无需通过执行以下操作打开它:

manager.openCamera(wideAngleCameraID, mStateCallback, mBackgroundHandler);
manager.setTorchMode(rearFacingCameraID, true);

但是,它不起作用,我收到以下消息:

W/System.err: android.hardware.camera2.CameraAccessException: The system-wide limit for number of open cameras has been reached, and more camera devices cannot be opened until previous instances are closed.

我可以让普通的后置摄像头和手电筒同时亮起,但广角就没有这样的运气了。

有谁知道解决这个问题的潜在方法?我已经浏览了这篇文章,但没有找到任何有用的东西。由于这是一个如此专业的应用程序,因此执行诸如生根手机或直接与设备的LED驱动器交谈之类的操作并非不可能,但是我需要知道从哪里开始。任何指示或帮助将不胜感激。

对于任何查看的人,我在看了这个论坛讨论后找到了答案。对我来说,亮度值位于

/sys/class/leds/led:torch_0

目录。生根手机后,我能够通过使用此处给出的过程调用 adb 命令来操纵该值。

最新更新