FLASH_MODE_TORCH 和 FLASH_MODE_ON 有啥区别
Posted
技术标签:
【中文标题】FLASH_MODE_TORCH 和 FLASH_MODE_ON 有啥区别【英文标题】:what is the difference between FLASH_MODE_TORCH AND FLASH_MODE_ONFLASH_MODE_TORCH 和 FLASH_MODE_ON 有什么区别 【发布时间】:2014-06-13 18:03:54 【问题描述】:我的应用使用FLASH_MODE_TORCH
打开相机 LED,但现在有人说FLASH_MODE_TORCH
在某些三星设备上无法正常工作。
那么我应该使用FLASH_MODE_ON
让所有设备都能正常工作吗?(尤其是三星设备)
【问题讨论】:
【参考方案1】:也许这会对你有所帮助
Parameters params = null;
if(mCamera != null)
params = mCamera.getParameters();
if(params != null)
List<String> supportedFlashModes = params.getSupportedFlashModes();
if(supportedFlashModes != null)
if(supportedFlashModes.contains(Parameters.FLASH_MODE_TORCH))
params.setFlashMode( Parameters.FLASH_MODE_TORCH );
else if(supportedFlashModes.contains(Parameters.FLASH_MODE_ON))
params.setFlashMode( Parameters.FLASH_MODE_ON );
else mCamera = null;
else Log.d(TAG, "Camera is null.");
if(mCamera != null)
Log.d(TAG, "Flash disponibile (" + params.getFlashMode() + ")");
mCamera.setParameters( params );
mCamera.startPreview();
mCamera.autoFocus(null);
else Log.d(TAG, "Camera is null.");
【讨论】:
我现在正在使用此代码,它适用于大多数设备,但不适用于 Galaxy Ace 等三星设备。我想知道“Flash_mode_on”是否适用于所有设备? 你帮了我很多。当我在更多设备上对其进行测试时,我会将其标记为已接受的答案。谢谢,【参考方案2】:没有单一的方法可以确保闪存在每台设备上都能正常工作。您必须添加大量特定于制造商和设备的代码。
Dwhanik 的回答是我将如何处理您所说的具体问题。首先检查FLASH_MODE_TORCH
,然后尝试FLASH_MODE_ON
。但这并不意味着您会在每台设备上都获得闪光灯。
【讨论】:
那么除了 FLASH_MODE_ON 和 FLASH_MODE_TORCH 之外,还有其他方法可以开启 flash 吗?【参考方案3】:public void Initialize()
if (this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH))
camManager = (CameraManager) getSystemService(this.CAMERA_SERVICE);
try
if (camManager.getCameraIdList().length > 0)
strCameraID=camManager.getCameraIdList()[0];
catch (Exception EX_CAMLIST)
public void switchLED(String strCemeraID,boolean status)
if(camManager==null || strCemeraID==null)return;
try
if (strCemeraID.length() > 0)
camManager.setTorchMode(strCemeraID, status);
catch (Exception EX_CAMERA_TORCH)
【讨论】:
您能否添加一个解释,以说明这是如何回答问题的?以上是关于FLASH_MODE_TORCH 和 FLASH_MODE_ON 有啥区别的主要内容,如果未能解决你的问题,请参考以下文章
Android 2.1 的 Camera.Parameters.FLASH_MODE_TORCH 替代品
如何以编程方式在 Lollipop Android 中打开 FlashLight
Camera setParameters(), getParameters(),unlock()三个方法之间的限制关系