【问题标题】:Turning on flashlight and camera that does not support flash simultaneously in Android在Android中同时打开手电筒和不支持闪光灯的相机
【发布时间】:2017-06-16 17:24:29
【问题描述】:

我正在为Kyocera 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.

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

有人知道解决这个问题的潜在方法吗?我已经浏览了this post,但没有发现任何有用的东西。由于这是一个如此专业的应用程序,因此执行诸如 root 电话或直接与设备的 LED 驱动器对话之类的操作并非不可能,但我需要知道从哪里开始。任何方向或帮助将不胜感激。

【问题讨论】:

    标签: java android camera android-camera2 flashlight


    【解决方案1】:

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

    /sys/class/leds/led:torch_0
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-25
      • 1970-01-01
      相关资源
      最近更新 更多