用不同的模式在android中打开手电筒
以下代码是否适用于不支持火炬的摩托罗拉剃刀等Android设备? 有人可以请你测试是否有这样的手机,请告诉我。
提前致谢!!
if (!isFlashOn) { if (camera == null || params == null) { return; } List flashModes = params.getSupportedFlashModes(); if(flashModes.contains(Parameters.FLASH_MODE_TORCH)){ try { params = camera.getParameters(); params.setFlashMode(Parameters.FLASH_MODE_TORCH); camera.setParameters(params); camera.startPreview(); toggleButtonImage(); isFlashOn = true; }catch (RuntimeException e) { } } else { params = camera.getParameters(); params.setFlashMode(Parameters.FLASH_MODE_ON); camera.setParameters(params); camera.startPreview(); toggleButtonImage(); isFlashOn = true; } toggleButtonImage(); isFlashOn = true; } }
PS我应该另外添加如下内容:
if (flashModes.contains(android.hardware.Camera.Parameters.FLASH_MODE_AUTO)) { params.setFlashMode(Parameters.FLASH_MODE_AUTO); camera.setParameters(params); camera.startPreview(); }
它适用于摩托罗拉g和galaxy S4(支持火炬)
如果设备支持不同的闪光模式,则可以在不同模式下打开手电筒。 您可以从此开源摄像头代码中获取代码。 开放式摄像头
是的,如果您检查该设备是否支持火炬。 但是您可能会遇到Android中非常普遍的特定于设备的问题。 您可以在这篇文章中找到更多信息。
你应该检查支持的闪存模式没有exception,setFlashMode方法检查支持的模式,但用这种方法检查有助于在UI上设置闪存模式按钮或视图
public List getSupportedFlashModes() { return params.getSupportedFlashModes(); }
所有Flash模式的总和是:
Camera.Parameters.FLASH_MODE_AUTO, Camera.Parameters.FLASH_MODE_OFF, Camera.Parameters.FLASH_MODE_ON, Camera.Parameters.FLASH_MODE_RED_EYE, Camera.Parameters.FLASH_MODE_TORCH
但是您的设备中可能无法使用某些或任何这些闪光模式,请在使用前进行检查。 从闪光模式中选择后,您可以使用此方法设置闪光模式
public synchronized void setFlashMode(String flashMode) { Camera.Parameters params = mCamera.getParameters(); if (cameraId == Camera.CameraInfo.CAMERA_FACING_BACK && params.getSupportedFlashModes() != null && params.getSupportedFlashModes().contains(flashMode)) { params.setFlashMode(flashMode); mCamera.setParameters(params); } }
- 检查网络和Internet连接 – Android
- ZXING Android嵌入式IntentIntegrator的用法
- Android中使用DateFormat的java.lang.IllegalArgumentException
- 要通过Intent分享到LinkedIn的类名
- 适用于android的PDF Viewer API
- Android Xml属性android:onClick =“…”如何在幕后工作?
- Android,试图解析android的json数据
- 使用身份validationcookie打开WebSocket连接
- 通过从MediaStore.ACTION_IMAGE_CAPTURE中选择图像来创建文件