2017-06-16 232 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命令來操縱該值。