目录

  • 1.控制手电筒开关的工具类:
  • 2.使用方法:
  • 3.示例程序已上传:

1.控制手电筒开关的工具类:

public class FlashUtils {    private CameraManager manager;    private Camera mCamera = null;    private Context context;    private boolean status = false;//记录手电筒状态    FlashUtils(Context context){        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {            manager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);        }        this.context = context;    }    //打开手电筒    public void open() {        if(status){//如果已经是打开状态,不需要打开            return;        }        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {            try {                manager.setTorchMode("0", true);            } catch (Exception e) {                e.printStackTrace();            }        } else {            PackageManager packageManager = context.getPackageManager();            FeatureInfo[] features = packageManager.getSystemAvailableFeatures();            for (FeatureInfo featureInfo : features) {                if (PackageManager.FEATURE_CAMERA_FLASH.equals(featureInfo.name)) { // 判断设备是否支持闪光灯                    if (null == mCamera) {                        mCamera = Camera.open();                    }                    Camera.Parameters parameters = mCamera.getParameters();                    parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);                    mCamera.setParameters(parameters);                    mCamera.startPreview();                }            }        }        status = true;//记录手电筒状态为打开    }    //关闭手电筒    public void close() {        if(!status){//如果已经是关闭状态,不需要打开            return;        }        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {            try {                manager.setTorchMode("0", false);            } catch (CameraAccessException e) {                e.printStackTrace();            }        } else {            if (mCamera != null) {                mCamera.stopPreview();                mCamera.release();                mCamera = null;            }        }        status = false;//记录手电筒状态为关闭    }    //改变手电筒状态    public void converse(){        if(status){            close();        }else{            open();        }    }}

2.使用方法:

FlashUtils utils = new FlashUtils(this);        utils.open();//打开手电筒//        utils.close();//关闭手电筒

3.示例程序已上传:

https://github.com/wkxjc/FlashlightStudy

更多相关文章

  1. android6.0 状态栏添加图标 举例Location
  2. Androidの联系人群组Group操作示例
  3. Android 使用ViewStub 实现多状态页面切换基类
  4. Android 保存和恢复activity的状态数据
  5. android 播放音乐示例
  6. Android Studio 学习实例记录-手电筒
  7. Android 自定义View及其在布局文件中的使用示例(二)
  8. Android 开机自启动示例程序
  9. 5.17学习内容 android判断软键盘状态、系统键盘监控、生成中间lo

随机推荐

  1. android下载封装类
  2. android 开发 制作弹出等待进度条
  3. Android(安卓)重力感应选号码
  4. Android改变button背景色与获取button背
  5. sdk manage 更新与安装
  6. Android(安卓)设立全屏
  7. 在android中举例说明如何用WebView.loadU
  8. Android(安卓)JSON数据的解析与封装小Dem
  9. Android中对图像进行Base64编码
  10. Android(安卓)editText 输入字数限制