From 17692267eea4adb77e93363ac27f1caff5f006ae Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期一, 05 六月 2023 09:11:43 +0800 Subject: [PATCH] 2023年06月05日09:11:31 --- 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