【问题标题】:Keep flashlight ON while camera is opened打开相机时保持手电筒开启
【发布时间】:2018-02-07 22:00:39
【问题描述】:

我想构建一个在拍照时保持前置 LED 闪光灯/手电筒开启的应用。所以我有以下代码使用隐式意图打开相机:

val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
startActivityForResult(intent, requestImageCapture)

以及手机手电筒/闪光灯的开关代码:

if(isLightOn) {
    val manager = getSystemService(Context.CAMERA_SERVICE) as CameraManager
    val cameraId = manager.cameraIdList[0]
    manager.setTorchMode(cameraId, false)
    isLightOn = false
} else {
    val manager = getSystemService(Context.CAMERA_SERVICE) as CameraManager
    val cameraId = manager.cameraIdList[0]
    manager.setTorchMode(cameraId, true)
    isLightOn = true
}

我设置了 2 个按钮的侦听器来执行这些操作。虽然它们本身工作得很好,但当有意​​打开相机时,手电筒/闪光灯不会保持打开状态。有什么方法可以实现这种行为吗?

【问题讨论】:

    标签: java android kotlin android-camera android-camera2


    【解决方案1】:

    torch 的代码有效,但仅适用于您的应用。执行startActivityForResult(intent, requestImageCapture) 后,您将不再在您的应用程序中。你在你选择的任何相机应用程序中。您的应用失去了对相机的访问权限,而相机应用获得了它。

    现在可以为相机应用控制闪光灯。相机应用可能有闪光灯控制。

    如果您想启用闪光灯并拍照,您必须创建自己的相机应用。您可以按照this 指南从头开始,也可以使用Fotoapparatmaterial-camera 等相机库

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      • 2013-08-26
      相关资源
      最近更新 更多