setTorchMode()最小化了应用程序,并且没有打开Flash



我对Android只有很小的经验,有以下片段:

String cameraId = cameraManager.getCameraIdList()[1]; System.out.println(cameraId); cameraManager.setTorchMode(cameraId, true);

这应该打开背面相机上的闪光灯(理想情况下)。此代码段在onClickListener中执行。当cameraManager.setTorchMode(cameraId, true);被执行时,应用程序被最小化(我可以看到它仍然在运行——没有崩溃),但闪光灯没有打开

在尝试了添加额外的检查闪光灯是否可用等选项后,我几乎筋疲力尽。该项目是为Android的Jellybean+版本设置的。测试手机是棒棒糖5.0.2。

我知道这个问题可能是以下内容的重复:如何在Android N中打开设备手电筒?

但他已经用尽一切办法,迫切需要一个解决方案。提前谢谢。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
mCameraManager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);
try {
for (String camID : mCameraManager.getCameraIdList()) {
CameraCharacteristics cameraCharacteristics = mCameraManager.getCameraCharacteristics(camID);
int lensFacing = cameraCharacteristics.get(CameraCharacteristics.LENS_FACING);
if (lensFacing == CameraCharacteristics.LENS_FACING_BACK 
&& cameraCharacteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE)) {
mCameraId = camID;
break;
}
}
if (mCameraId != null) {
mCameraManager.setTorchMode(mCameraId, true);
}
} catch (CameraAccessException e) {
e.printStackTrace();
}
}

mCameraId将打开背面相机闪光灯。如果设备没有闪存硬件,那么mCameraId将为null,并且在上面的代码中不会调用setTorchMode。

最新更新