当前位置: 首页 > news >正文

Android手电筒、闪光灯、torch、flash

1. 仅开启手电筒

单纯的开启手电筒我们可以使用CameraManager的.setTorchMode()方法。

cameraCharacteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE)获取该相机特征是否可获取闪光灯。

CameraManager cameraManager= (CameraManager) getSystemService(CAMERA_SERVICE);
String cameraIdList[]=cameraManager.getCameraIdList();
String cameraId = null;
for(int i=0;i<cameraIdList.length;i++){CameraCharacteristics cameraCharacteristics=cameraManager.getCameraCharacteristics(cameraIdList[i]);//可获取闪光灯&&朝向为后置if(cameraCharacteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE)&&cameraCharacteristics.get(CameraCharacteristics.LENS_FACING)==CameraCharacteristics.LENS_FACING_BACK){cameraId=cameraIdList[i];break;}
}
//打开手电筒
cameraManager.setTorchMode(cameraId,true);
//关闭手电筒
cameraManager.setTorchMode(cameraId,false);

2. Camer2开启闪光灯

在Camera2中,我们一般在预览的捕获请求中设置开启或关闭闪光灯,然后向捕获通道设置新的捕获请求

开启闪光灯:

captureRequestBuilder .set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_TORCH);

关闭闪光灯:

captureRequestBuilder .set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF);

Button torch = findViewById(R.id.torch);
torch.setOnClickListener(new View.OnClickListener() {int i = 0;public void onClick(View view) {if (i == 0) {CaptureRequest.Builder captureRequestBuilder_preview = myCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);//设置开启闪光灯captureRequestBuilder_preview.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_TORCH);captureRequestBuilder_preview.addTarget(surface_surfaceView);//通道设置新循环捕获请求myCameraCaptureSession.setRepeatingRequest(captureRequestBuilder_preview.build(),null,null);i=1;} else if (i==1) {CaptureRequest.Builder captureRequestBuilder_preview= myCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);//设置关闭闪光灯captureRequestBuilder_preview.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF);captureRequestBuilder_preview.addTarget(surface_surfaceView);//通道设置新循环捕获请求myCameraCaptureSession.setRepeatingRequest(captureRequestBuilder_preview.build(),null,null);i=0;}}
});

3. ZXing开启手电筒

扫码时经常需要使用手电筒,但是因为ZXing已经启动了一个相机所以无法使用CameraManager来开启手电筒;并且因为没有捕获通道所以也不能使用设置捕获请求开启手电筒。

但ZXing中的DecoratedBarcodeView控件类(即com.journeyapps.barcodescanner.DecoratedBarcodeView控件)提供了启动和关闭手电筒的方法。可以在自定义的Activity中通过DecoratedBarcodeView开关手电筒。

启动手电筒:.setTorchOn()

关闭手电筒:.setTorchOff()

可以在自定义Activity的onCreate()中使用这些方法。

Button torchButton=findViewById(R.id.torchButton);
torchButton.setOnClickListener(new View.OnClickListener() {int i=0;public void onClick(View view) {if(i==0){//启动手电筒barcodeScannerView.setTorchOn();i=1;} else if (i==1) {//关闭手电筒barcodeScannerView.setTorchOff();i=0;}}});

相关文章:

Android手电筒、闪光灯、torch、flash

1. 仅开启手电筒 单纯的开启手电筒我们可以使用CameraManager的.setTorchMode()方法。 cameraCharacteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE)获取该相机特征是否可获取闪光灯。 CameraManager cameraManager (CameraManager) getSystemService(CAMERA_SE…...

C语言--每日选择题--Day26

第一题 1.在C语言中&#xff0c;表示一次性地给数组a的10元素赋值&#xff08;&#xff09; int a[10];scanf&#xff08;"%d"&#xff0c;a&#xff09;; A&#xff1a;正确 B&#xff1a;错误 答案及解析 B 我们知道单独的数组名就是首元素地址&#xff0c;但是也有…...

[ACTF2020 新生赛]BackupFile

打开题目就一句话&#xff1a;尝试找到源文件 和上一题一样&#xff0c;用dirsearch扫描网站找到了一下内容 flag.php&#xff0c;0B&#xff0c;虚假flag 瞅一眼index.php.bak是啥 下载了一个文件&#xff0c;把bak后缀删掉&#xff0c;打开了index.php源码 is_numeric()&am…...

WPF面试题:WPF绘图技术介绍

作者:令狐掌门 技术交流QQ群:675120140 csdn博客:https://mingshiqiang.blog.csdn.net/ 文章目录 WPF绘图基本用法绘制直线在XAML中绘制直线在C#代码中绘制直线使用Path绘制直线注意矩形绘制在XAML中绘制矩形在C#代码中绘制矩形设置矩形的位置使用圆角矩形画刷1. SolidColor…...

三、Lua变量

文章目录 一、变量分类二、变量赋值三、索引 一、变量分类 lua变量分为全局变量&#xff0c;局部变量。 全局变量&#xff1a;默认&#xff0c;全局有效。 局部变量&#xff1a;从作用范围开始到作用范围结束&#xff0c;需加local 修饰。 a1function ff()local b1 endprint(a…...

C#每天复习一个重要小知识day4:枚举的概念/申明/使用

目录 1.枚举的概念&#xff1a; 2.申明枚举和申明枚举变量&#xff1a; 申明枚举语法&#xff1a; 申明枚举变量语法&#xff1a; 1.枚举的概念&#xff1a; 枚举是什么&#xff1f;枚举是一个比较特别的存在&#xff0c;它是一个命名的整形常量的集合&#xff0c;一般用它…...

C++:对象模型和this指针

对象模型&#xff1a; 成员变量和成员函数分开存储 在C中&#xff0c;类内的成员变量和成员函数分开存储 只有非静态成员变量才属于类的对象上 空对象占用空间&#xff1a; 1字节 C编译器会给每个空对象也分配一个字节空间&#xff0c;是为了区分空对象占内存的位置 每个…...

碳酸氢锂/硫酸锂溶液纯化除钙镁解决方案

碳酸锂是锂电行业阳极生产中的一个重要原材料&#xff0c;主要用于制造钴酸锂、镍酸锂、锰酸锂等电极材料&#xff0c;也用于充电 锂电池中作非水溶液电解质等&#xff0c;具有良好的电化学性能&#xff0c;应用领域还在不断扩大。工业级碳酸锂主含量&#xff08;Li2CO3&#x…...

消失的数字,旋转数组(leetcode 一题多解)

目录 一、消失的数字 思路一&#xff08;暴力求解&#xff09;代码实现&#xff1a; 思路二&#xff08;数列的思想&#xff09;代码实现&#xff1a; 思路三&#xff08;异或的运用&#xff09;代码实现&#xff1a; 二、轮转数组 思路一&#xff08;暴力求解&#xff09…...

肠道菌群16s检测粪便采样工具包 粪便采样套装

肠道菌群16s检测是一种常见的分子生物学技术&#xff0c;用于研究人体肠道中的微生物群落。该技术通过分析16s rRNA基因序列&#xff0c;可以快速、准确地鉴定并定量不同种类的肠道微生物。 肠道菌群16s检测通常通过采集粪便样本进行分析。在实验室中&#xff0c;通过提取微生物…...

实现领域驱动设计-07-领域服务

领域中的服务表示一个无状态的操作&#xff0c;它用于实现特定于某个领域的任务。当某个操作不适合放在聚合和值对象上时&#xff0c;为了避免过程式的编程方式&#xff0c;最好的方式便是使用领域服务来实现该操作。 什么是领域服务? 当领域中的某个操作过程或转换过程不是实…...

井盖位移传感器厂家批发,守护井盖安全

窨井盖广泛分布于城市街道&#xff0c;其管理效果直接反映了城市治理的现代化程度。根据住房和城乡建设部发布的《关于进一步加强城市窨井盖安全管理的通知》&#xff0c;全国各地需加强窨井盖的安全管理。作为市政基础设施的一个重要的组成部分&#xff0c;井盖的管理工作不仅…...

python命令行交互 引导用户选择宠物

字多不看&#xff0c;直接体验 代码 以下代码将在命令行中&#xff0c;引导用户选择一个或者多个宠物&#xff0c;并反馈用户选择的宠物 # -*- coding:UTF-8 -*- """ author: dyy contact: douyaoyuan126.com time: 2023/11/22 15:19 file: 在命令行中引导用户…...

Leetcode—167.两数之和 II - 输入有序数组【中等】

2023每日刷题&#xff08;四十一&#xff09; Leetcode—167.两数之和 II - 输入有序数组 实现代码 /*** Note: The returned array must be malloced, assume caller calls free().*/ int* twoSum(int* numbers, int numbersSize, int target, int* returnSize) {*returnSiz…...

MybatisPlus改造逻辑删除有多方便

MybatisPlus的逻辑删除可以有效保留历史数据。之前没有用逻辑删除的项目&#xff0c;想改造成逻辑删除总共需要几步&#xff1f; 答案&#xff1a;4步搞定 一、修改pom.xml的MybatisPlus版本&#xff08;注意版本兼容性&#xff09; <properties>...<!--<mybatis-…...

希尔伯特变换-matlab仿真

希尔伯特变换(hilbert transform)简介 在信号处理中我们常见的有傅里叶变换,用来分析频域信息,还有拉普拉斯变换和z变换,用于系统分析系统响应。短时傅里叶分析和小波分析用于时频分析。希尔伯特变换似乎听到的比较少。我因为最近在做信号幅度提取的时候看到可以用希尔伯…...

python字典的基本操作详解

Python字典是一种数据结构&#xff0c;它存储的是键值对&#xff08;key-value pair&#xff09;。在Python中&#xff0c;字典用于存储和组织数据&#xff0c;并且提供了快速查找和访问数据的方法。 以下是一些Python字典的基本操作&#xff1a; 创建字典&#xff1a; # 创…...

[ CSS ] 内容超出容器后 以...省略

内容超出容器后 以…省略 当前效果 代码 <template><div class"box">有志者&#xff0c;事竟成&#xff0c;破釜沉舟&#xff0c;百二秦关终属楚; 有心人&#xff0c;天不负&#xff0c;卧薪尝胆&#xff0c;三千越甲可吞吴</div> </templa…...

Java远程连接本地开源分布式搜索引擎ElasticSearch

文章目录 前言1. Windows 安装 Cpolar2. 创建Elasticsearch公网连接地址3. 远程连接Elasticsearch4. 设置固定二级子域名 前言 简单几步,结合Cpolar内网穿透工具实现Java远程连接操作本地Elasticsearch。 什么是elasticsearch&#xff1f;一个开源的分布式搜索引擎&#xff0…...

递归回溯剪枝-子集

LCR 079. 子集 - 力扣&#xff08;LeetCode&#xff09; 方法一 1. 决策树&#xff1a;对于决策树&#xff0c;思考的角度不同&#xff0c;画出的决策树也会不同&#xff0c;这道题可以从两个角度来画决策树。 2. 考虑全局变量的使用&#xff1a; 使用全局变量 List<List&…...

「码动四季·开源同行」python语言:用户交互

一、编程入门 1.编程的概念 我们学习一门编程语言需要先了解清楚&#xff0c;什么是编程&#xff0c;为什么要编程&#xff0c;最后才学习怎么编程。计算机的发明就是为了用机器取代人力&#xff0c;来帮助人类进行无休正的工作&#xff0c;还不给他工资&#xff0c;这就是编程…...

瑞芯微RGA接口避坑指南:wrapbuffer_virtualaddr使用中的三个常见错误与修复

瑞芯微RGA接口深度避坑&#xff1a;wrapbuffer_virtualaddr高频问题实战解析 第一次接触瑞芯微RGA加速库的开发者&#xff0c;往往会在官方Demo顺利运行后信心满满地开始项目集成&#xff0c;却在wrapbuffer_virtualaddr接口处遭遇各种诡异崩溃——内存泄漏、花屏、段错误接踵而…...

非科班生如何用Trae IDE在数学建模比赛中逆袭?Python实战经验分享

非科班生如何用Trae IDE在数学建模比赛中逆袭&#xff1f;Python实战经验分享 数学建模比赛向来是跨学科竞技的舞台&#xff0c;但编程这道门槛让不少非计算机专业的学生望而却步。去年带队参加统计建模大赛时&#xff0c;我们三个经管专业的大一新生就面临这样的困境——团队里…...

绿色机器学习系统综述:(三)算法策略与测量工具

摘要 本文是对发表在《Artificial Intelligence Review》期刊上的论文"A systematic review of Green Machine Learning: practices and challenges for sustainability"的文献精读第三篇。该论文由Samara Santos、Andr L. C. Ottoni、Rita Borgo、Danton Ferreira和…...

3分钟魔法:让Navicat Premium试用期无限续杯的神奇脚本

3分钟魔法&#xff1a;让Navicat Premium试用期无限续杯的神奇脚本 【免费下载链接】navicat-premium-reset-trial Reset macOS Navicat Premium 15/16/17 app remaining trial days 项目地址: https://gitcode.com/gh_mirrors/na/navicat-premium-reset-trial 你是否曾…...

Snap.Hutao:为原神玩家量身打造的开源桌面工具箱

Snap.Hutao&#xff1a;为原神玩家量身打造的开源桌面工具箱 【免费下载链接】Snap.Hutao 实用的开源多功能原神工具箱 &#x1f9f0; / Multifunctional Open-Source Genshin Impact Toolkit &#x1f9f0; 项目地址: https://gitcode.com/GitHub_Trending/sn/Snap.Hutao …...

OpenCV实战:用HoughLinesP函数5分钟搞定车道线检测(Python代码保姆级教程)

OpenCV实战&#xff1a;用HoughLinesP函数5分钟搞定车道线检测&#xff08;Python代码保姆级教程&#xff09; 车道线检测是自动驾驶和辅助驾驶系统的核心技术之一。想象一下&#xff0c;当你驾驶车辆行驶在高速公路上&#xff0c;系统需要实时识别车道线以确保车辆保持在正确的…...

Dockerfile实战:从零构建轻量级JDK1.8运行环境

1. 为什么需要轻量级JDK1.8运行环境&#xff1f; 在Java开发中&#xff0c;JDK1.8因其稳定性和丰富的特性集&#xff0c;至今仍是许多企业项目的首选版本。但传统的JDK安装方式存在几个痛点&#xff1a;首先是环境配置复杂&#xff0c;需要手动设置JAVA_HOME等环境变量&#x…...

Ollama服务调优指南:如何为你的微调Qwen模型分配GPU、内存和设置保活

Ollama生产环境调优实战&#xff1a;GPU分配、内存管理与服务保活全解析 当你在本地服务器或云端实例部署好Qwen微调模型后&#xff0c;真正的挑战才刚刚开始。我曾亲眼见过一家创业公司因为不当的GPU分配策略&#xff0c;导致价值数十万的A100显卡有一半时间处于闲置状态&…...

APK Installer:在Windows上轻松管理Android应用的智能助手

APK Installer&#xff1a;在Windows上轻松管理Android应用的智能助手 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer APK Installer是一款专为Windows系统设计的Andro…...