Android控制手电筒代码,简单易用,不需要任何权限
16lz
2021-01-23
目录
- 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
更多相关文章
- android6.0 状态栏添加图标 举例Location
- Androidの联系人群组Group操作示例
- Android 使用ViewStub 实现多状态页面切换基类
- Android 保存和恢复activity的状态数据
- android 播放音乐示例
- Android Studio 学习实例记录-手电筒
- Android 自定义View及其在布局文件中的使用示例(二)
- Android 开机自启动示例程序
- 5.17学习内容 android判断软键盘状态、系统键盘监控、生成中间lo