2017-06-16 234 views
0

我正在为Kyocera E6820写一个高度专用的应用程序,要求设备的广角相机和手电筒同时打开。我正在使用Camera2 Android API。问题是,在默认情况下广角摄像头不支持闪光灯,所以如果我尝试做在同一时间打开手电筒和广角摄像头下面:在Android中同时打开不支持闪光灯的手电筒和相机

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. 

我能得到正常的后置摄像头和闪光灯同时继续下去,但没有这样的运气与广角。

有没有人知道解决这个问题的潜在方法?我已经浏览了this post,但没有找到有用的东西。由于这是一个非常专业的应用程序,因此不要做任何事情,比如扎根电话或直接与设备的LED驱动器通话,但我需要知道从哪里开始。任何方向或帮助,将不胜感激。

回答

0

对于任何人查看,我看到this forum discussion后找到答案。对我而言,亮度值位于

/sys/class/leds/led:torch_0 

目录中。在生根电话后,我可以通过使用here的过程调用adb命令来操纵该值。