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

时间:2017-06-16 17:24:30

标签: java android camera android-camera2 flashlight

我正在为Kyocera E6820编写一个高度专业化的应用程序,该应用程序要求设备的广角相机和手电筒同时打开。

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

['foo', 'bar']

我收到错误消息:

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);

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

有没有人知道解决这个问题的潜在方法?我已查看this post,但没有找到任何有用的内容。由于这是一个专门的应用程序,做一些像生根电话或直接与设备的LED驱动器交谈的问题并不是不可能的,但我需要知道从哪里开始。任何方向或帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

对于任何观看者,我在查看this forum discussion后找到答案。对我来说,亮度值位于

/sys/class/leds/led:torch_0

目录。在手机生根后,我可以通过使用给定here的过程调用adb命令来操纵该值。