安卓开发手电筒应用(打开或关闭闪光灯)
发布日期:2021-06-29 18:30:08 浏览次数:2 分类:技术文章

本文共 2335 字,大约阅读时间需要 7 分钟。

用途

打开或关闭闪光灯,用于手电筒应用.

主要代码

object FlashUtils {
private lateinit var manager: CameraManager private lateinit var mCamera: Camera private lateinit var mContext: Context private var status = false //记录手电筒状态 fun init(context: Context) {
mContext = context if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
manager = mContext.getSystemService(Context.CAMERA_SERVICE) as CameraManager } } //打开手电筒 fun open() {
if (status) {
//如果已经是打开状态,不需要打开 return } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
try {
manager.setTorchMode("0", true) } catch (e: Exception) {
e.printStackTrace() } } else {
val packageManager = mContext.packageManager val features = packageManager.systemAvailableFeatures for (featureInfo in features) {
if (PackageManager.FEATURE_CAMERA_FLASH == featureInfo.name) {
// 判断设备是否支持闪光灯 val parameters = mCamera.parameters parameters.flashMode = Camera.Parameters.FLASH_MODE_TORCH mCamera.parameters = parameters mCamera.startPreview() } } } status = true //记录手电筒状态为打开 } //关闭手电筒 fun close() {
if (!status) {
//如果已经是关闭状态,不需要打开 return } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
try {
manager.setTorchMode("0", false) } catch (e: CameraAccessException) {
e.printStackTrace() } } else {
mCamera.stopPreview() mCamera.release() } status = false //记录手电筒状态为关闭 }}

调用代码:

class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) FlashUtils.init(this) flashSwitch.setOnCheckedChangeListener {
_, isChecked -> if (isChecked) {
FlashUtils.open() } else {
FlashUtils.close() } } }}

源代码


安卓发展历程及前景

初探安卓

开发语言学习

UI控件学习系列

关注头条号,第一时间获取最新文章:

转载地址:https://cxyxy.blog.csdn.net/article/details/107844713 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:安卓开发入门教程-UI控件_Switch
下一篇:安卓使用selector定制复选框(checkbox)

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月10日 13时43分05秒