package com.yuyh.library.utils; import android.hardware.Camera; import android.os.Build; import android.os.Handler; /** * 闪光灯 * * @author yuyh. * @date 16/4/9. */ public class FlashLightUtils { private Camera camera; private Handler handler = new Handler(); /** * 超过3分钟自动关闭,防止损伤硬件 */ private static final int OFF_TIME = 3 * 60 * 1000; /** * 打开闪光灯 * * @return */ public boolean turnOnFlashLight() { if (camera == null) { camera = Camera.open(); camera.startPreview(); Camera.Parameters parameter = camera.getParameters(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR) { parameter.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); } else { parameter.set("flash-mode", "torch"); } camera.setParameters(parameter); handler.removeCallbacksAndMessages(null); handler.postDelayed(new Runnable() { @Override public void run() { turnOffFlashLight(); } }, OFF_TIME); } return true; } /** * 关闭闪光灯 * * @return */ public boolean turnOffFlashLight() { if (camera != null) { handler.removeCallbacksAndMessages(null); Camera.Parameters parameter = camera.getParameters(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR) { parameter.setFlashMode(Camera.Parameters.FLASH_MODE_OFF); } else { parameter.set("flash-mode", "off"); } camera.setParameters(parameter); camera.stopPreview(); camera.release(); camera = null; } return true; } }