From 44ba605a4e850efa757020da5fb4cf02bdf6e3ab Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期一, 08 九月 2025 10:55:18 +0800
Subject: [PATCH] 2025年09月08日10:55:15
---
app/src/main/java/com/hdl/photovoltaic/utils/FlashLightUtils.java | 41 +++++++++++++++++++++++++++++++++++++++--
1 files changed, 39 insertions(+), 2 deletions(-)
diff --git a/app/src/main/java/com/hdl/photovoltaic/utils/FlashLightUtils.java b/app/src/main/java/com/hdl/photovoltaic/utils/FlashLightUtils.java
index 3ff26b5..eb8b8e0 100644
--- a/app/src/main/java/com/hdl/photovoltaic/utils/FlashLightUtils.java
+++ b/app/src/main/java/com/hdl/photovoltaic/utils/FlashLightUtils.java
@@ -5,6 +5,7 @@
import android.content.pm.FeatureInfo;
import android.content.pm.PackageManager;
import android.hardware.camera2.CameraAccessException;
+import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.CameraManager;
import android.os.Build;
import android.hardware.Camera;
@@ -42,7 +43,7 @@
FeatureInfo[] features = packageManager.getSystemAvailableFeatures();
for (FeatureInfo featureInfo : features) {
// 鍒ゆ柇璁惧鏄惁鏀寔闂厜鐏�
- if (packageManager.FEATURE_CAMERA_FLASH.equals(featureInfo.name)) {
+ if (PackageManager.FEATURE_CAMERA_FLASH.equals(featureInfo.name)) {
if (null == mCamera) {
mCamera = Camera.open();
}
@@ -58,7 +59,7 @@
}
// 鍏抽棴鎵嬬數绛�
- public void cloes() {
+ public void close() {
if (!status) // 濡傛灉鏄凡缁忓叧闂殑鐘舵�� 涓嶉渶瑕佹墦寮�
{
return;
@@ -79,5 +80,41 @@
}
status = false; // 璁板綍鎵嬬數绛掍负鍏抽棴
}
+
+ /**
+ * 鎵嬬數绛掓墦寮�鎴栬�呭叧闂�
+ *
+ * @param isOpen 鎵撳紑(true)鎴栬�呭叧闂�(false)
+ */
+ public void setOpenOrClose(boolean isOpen) {
+ try {
+
+ //鑾峰彇褰撳墠鎵嬫満鎵�鏈夋憚鍍忓ご璁惧ID
+ String[] ids = manager.getCameraIdList();
+ for (String id : ids) {
+ CameraCharacteristics c = manager.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) {
+ //鎵撳紑鎴栧叧闂墜鐢电瓛
+ manager.setTorchMode(id, isOpen);
+ break;
+ }
+ }
+ } catch (CameraAccessException e) {
+ e.printStackTrace();
+ }
+ }
+
+
}
--
Gitblit v1.8.0