目录

  • 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

Android控制手电筒代码,简单易用,不需要任何权限相关推荐

  1. javascript 代码_如何使您JavaScript代码简单易读

    javascript 代码 by Arthur Arakelyan 通过亚瑟·阿拉克利安(Arthur Arakelyan) 如何使您JavaScript代码简单易读 (How to keep you ...

  2. [Android开源]一个非常简单易用用来花式展示二维码样式生成的库QRCodeStyle

    类库说明 一个非常简单易用用来花式展示二维码样式生成的库 自由组合二维码样式 使用范例 设置带圆边圈的logo Bitmap logo = BitmapFactory.decodeResource(g ...

  3. android打开手电筒代码,Android 通用型手电筒代码

    前几天这边一个小区断电,黑麻麻的,一只猫闯进寝室,把我吓哭,然后就果断写了个手电筒,下次断电,再来,我要吓死它. 我之前看到很多人都是直接调用闪光灯,其实大部分机型都不支持,我这个是用相机功能来实现的 ...

  4. Android控制WIFI相关操作

    Android控制WIFI相关操作 在XML文件中添加权限: <uses-permission android:name="android.permission.ACCESS_WIFI ...

  5. Android百度地图之位置定位和附近查找代码简单实现 (上)

    很长时间没有做Android相关知识了,闲暇之余再弄了弄最新的百度地图API,主要是进行百度地图附近餐馆查找功能来练练手,同时熟悉下最新的API教程.文章比较基础,也希望对你有所帮助~参考前文:   ...

  6. java通讯框架_gim: 一个简单易用,稳定高效的及时通讯框架(java、android)

    gim 一个简单易用,稳定高效的及时通讯框架(java) 简介: gim是基于高性能网络框架getty封装的,能简单上手,稳定高效的及时通讯框架 Getty:[https://github.com/g ...

  7. Android 9使用APP来控制手电筒功能

    1.UI设计 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:and ...

  8. 【专题教程第4期】SEGGER的J-Scope波形上位机软件,HSS模式简单易用,无需额外资源,也不需要写目标板代码

    说明: 1.在实际项目中,很多时候,我们需要将传感器或者ADC的数值以波形的形式显示.通常的解决办法是用串口上位机,USB接口上位机或者MDK的逻辑分析仪功能,使用这三种方式都比较繁琐.本期专题为大家 ...

  9. 【C51】基于51单片机的简易频率计(附代码、无需外设、小白简单易上手)

    基于51单片机的简易频率计(无需外设.小白简单易上手)   代码较为简单,大概思路是通过定时器单位时间内外部中断上升沿触发的次数来计算实际频率. /基于51单片机的简易频率计#include<r ...

最新文章

  1. 窗体的ControlBox属性
  2. 正确理解ContentPresenter
  3. C语言试题二十一之定义n×n的二维数组编写函数 function(int a[][n])功能是:使数组左下半三角元素中的值全部置成0。
  4. 前端学习(1151):let经典面试题1
  5. linux命令界面输入不了密码,如何在 Linux 中不输入密码运行 sudo 命令
  6. 洛谷P1069 细胞分裂 数学
  7. linux高级网络编程教程
  8. net安装包的制作[包括卸载模块](图解)
  9. 平面一般力系最多可以求解_利用平面一般力系的平衡方程最多可求解几个未知量。( )...
  10. 如何在 win 10 上安装 IIS
  11. 网络安全实验室-解密关1
  12. 37个 safari 快捷键,让Mac网页浏览更方便
  13. 云音乐计算机等科目英文,音乐英文术语
  14. 记录This request has been blocked; the content must be served over HTTPS.
  15. 三极管的输入输出的特性曲线
  16. python分位数回归模型_分位数回归森林
  17. word文件在线转换成pdf
  18. Linux命令:ls -l(ll)结果解析
  19. Vue elementui 实现表格selection的默认勾选
  20. 版本管理工具和as的一些配置

热门文章

  1. 广西教师招聘需要计算机考试证,报考2020广西教师招聘需要什么条件
  2. python实现网络测速
  3. linux驱动程序ioctl函数用法
  4. LNMP脚本一键部署
  5. ISOCOM光耦的完全替代
  6. Kruskal算法与并查集
  7. 腾讯AI Lab「云深」与成都先导合作「AI+药物」,发布骨架跃迁新算法
  8. 图像增强评价标准EME和matlab代码
  9. 土壤C、N动态对大气臭氧污染的生态学响应
  10. kali2021更新源(最全的更新源)