android 开启手电筒,android 9.0 获取手电筒状态以及打开/关闭手电筒
查了很多资料,其他博客大多都是介绍以前的的方案,基于9.0系统的基本没有找到,要么就不全,特别是获取手电筒状态的资料,下面就大致介绍一下:
打开和关闭的方法是:toggleLight
获取手电筒状态的通过回调方法:mTorchCallback(这就是为什么进入页面就需要注册该回调)
private CameraManager mCameraManager;
public void initData() {
//ivFlashlight是界面上的imageview控件
ivFlashlight.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
toggleLight(!isFlashLightOn);
}
});
//获取CameraManager
if(mCameraManager == null){
mCameraManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
}
mCameraManager.registerTorchCallback(mTorchCallback, null);
}
//callback成员变量初始化
private CameraManager.TorchCallback mTorchCallback = new CameraManager.TorchCallback() {
@Override
public void onTorchModeChanged(@NonNull String cameraId, boolean enabled) {
super.onTorchModeChanged(cameraId, enabled);
Log.e(TAG, "onTorchModeChanged cameraId=" + cameraId + ";enabled=" + enabled);
isFlashLightOn = enabled;
ivFlashlight.setIcon(enabled ? MaterialDrawableBuilder.IconValue.FLASHLIGHT : MaterialDrawableBuilder.IconValue.FLASHLIGHT_OFF);
}
};
public void toggleLight(boolean OPEN) {
try {
//获取当前手机所有摄像头设备ID
String[] ids = mCameraManager.getCameraIdList();
for (String id : ids) {
CameraCharacteristics c = mCameraManager.getCameraCharacteristics(id);
//查询该摄像头组件是否包含闪光灯
Boolean flashAvailable = c.get(CameraCharacteristics.FLASH_INFO_AVAILABLE);
/*
* 获取相机面对的方向
* CameraCharacteristics.LENS_FACING_FRONT 前置摄像头
* CameraCharacteristics.LENS_FACING_BACK 后只摄像头
* CameraCharacteristics.LENS_FACING_EXTERNAL 外部的摄像头
*/
Integer lensFacing = c.get(CameraCharacteristics.LENS_FACING);
if (flashAvailable != null && flashAvailable
&& lensFacing != null && lensFacing == CameraCharacteristics.LENS_FACING_BACK) {
//打开或关闭手电筒
mCameraManager.setTorchMode(id, OPEN);
break;
}
}
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if(mCameraManager != null && mTorchCallback != null){
mCameraManager.unregisterTorchCallback(mTorchCallback);
}
}
android 开启手电筒,android 9.0 获取手电筒状态以及打开/关闭手电筒相关推荐
- 笔记:uniapp js 打开关闭手电筒
参考:uni-app 手电打开和关闭_逆境中徘徊的博客-CSDN博客_uniapp打开闪光灯 可直接查看原文章 js文件 flashlight.js // 打开闪光灯 export const ...
- android信号强弱动画,Android6.0获取4G信号的信号强度(dbm)
起因:项目需要获取4G信号强度,进行显示. 经过:通过google,发现获取4G信号强度都是通过读取字符串的方式获取,但是我还没有搞懂取出的是什么,也不知道怎么通过那个值转化成显示的格数. 所以,我想 ...
- android开启服务器配置,Android基于XMPP开发(一)【openfire服务器配置】
OpenFire OpenFire 是采用Java开发的基于XMPP(Jabber)协议,开源实时协作(RTC)服务器. Smack 是用 Java编 写的XMPP客户端代码库,是 spark 的核心 ...
- android 开启gps 简书,1分钟教你如何打开人生的GPS导航系统
这两天我在学习李欣频老师的<荣耀天命版的自己>. 李欣频老师说,要找到我们自己的天命所在,因为天命会带出天赋与天职. 图片发自简书App "三十而立,四十不惑,五十知天命&quo ...
- 如何在Android中打开/关闭相机LED /手电筒
在本教程中,我们向您展示如何在Android中打开/关闭手机摄像头或手电筒. 查看代码段: 1.开启 camera = Camera.open();Parameters p = camera.getP ...
- Android 开启手电筒功能(完美适配4.x, 5.x, 6.x )
最近在逛GooglePlay应用市场的时候发现很多的手电筒功能居然都带有广告感觉非常的不可思议的.而且这些应用不仅仅有广告而且安装包还特别的大,我本来还想下载一个来玩玩的,后来看了他们的东西感觉也不过 ...
- Android开启手电筒功能(完美适配Android4x,5x,6x)
原文http://blog.csdn.net/mynameishuangshuai Android4x.5x.6x的手电筒开启方法,写成公共方法,分享给大家. 添加摄像机和闪光灯权限 <uses ...
- Android 开启闪光灯做手电筒 源码
权限:<uses-permission android:name="android.permission.FLASHLIGHT" /><uses-permissi ...
- android手电筒项目代码,Android 开启闪光灯做手电筒 源码-Fun言
权限: 布局 android:layout_width="fill_parent" android:layout_height="fill_parent" an ...
最新文章
- 程序员必备注释模板---佛祖保佑
- redhat7企业版linuxlinux基本操作
- hive读取hdfs存放文件_Hive基本概念
- QT学习:获取文件详细信息
- python移除系统多余大文件
- 汇编语言 DS段寄存器
- JavaScript全面学习(中阶)
- IntelliJ IDEA查看方法在哪里被调用(Usage Search/Call Hierarchy)
- Flutter学习笔记(10)--容器组件、图片组件
- python学习——正则表达项目
- FeelYourSound Chillout Engine Pro for Mac - MIDI文件生成插件
- 更快的 Chrome?谷歌正在测试“永不变慢”模式
- ubuntu18.04+语音识别
- ADSL 拨号代理的搭建
- 计算机系统维护论文5000字,计算机系统维护毕业论文
- PHP微信小程序用户昵称带表情符存储
- python判断用户名密码是否正确_python实现用户名密码校验
- CAD二次开发——填充
- 谈谈对python中的日期、时间、时区的理解(1)
- 操作系统学习体会之进程管理篇
热门文章
- 【报错笔记】Windows下spacy en_core_web_sm安装解决方式
- 蓝桥杯--封印之门( Floyd算法)
- Linux模拟实现僵尸进程
- YDOOK:STM32: F1系列Cortex-M3基础型MCU 介绍
- VUE 百度离线地图的下载与使用
- 最佳值换算法c语言,页面置换算法---最佳置换算法(OPT)
- 360和腾讯的IT大战,几时收场?
- office2007 向程序发送命令时出现问题 的解决办法
- Today今天便利店的梦想:准独角兽的雄心与挑战
- 小程序毕设作品之微信积分商城小程序毕业设计成品(4)开题报告