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/ui/home/me/MeFragment.java | 2 app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java | 75 ++++++++---------------- app/src/main/java/com/hdl/photovoltaic/ui/home/powerstation/HouseListFragment.java | 16 +---- app/src/main/java/com/hdl/photovoltaic/base/BaseActivity.java | 4 app/src/main/res/layout/activity_my_power_station.xml | 4 app/src/main/java/com/hdl/photovoltaic/utils/FlashLightUtils.java | 41 +++++++++++++ app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java | 2 7 files changed, 75 insertions(+), 69 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/base/BaseActivity.java b/app/src/main/java/com/hdl/photovoltaic/base/BaseActivity.java index e49c4ff..04b2ce1 100644 --- a/app/src/main/java/com/hdl/photovoltaic/base/BaseActivity.java +++ b/app/src/main/java/com/hdl/photovoltaic/base/BaseActivity.java @@ -3,6 +3,7 @@ import android.app.Activity; import android.content.Intent; import android.os.Bundle; +import android.util.Log; import android.view.View; import androidx.annotation.Nullable; @@ -19,7 +20,6 @@ @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - _mActivity = this; Object content = getContentView(); //娣诲姞Activity鍒板爢鏍� @@ -67,7 +67,7 @@ /** * 绠�鍗曠殑璺宠浆Activity * - * @param clazz + * @param clazz _ */ protected void startActivity(Class<?> clazz) { Intent intent = new Intent(this, clazz); diff --git a/app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java b/app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java index 8854588..4a88c53 100644 --- a/app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java +++ b/app/src/main/java/com/hdl/photovoltaic/base/BaseFragment.java @@ -3,6 +3,7 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -36,6 +37,7 @@ _mActivity = getActivity(); } + @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java index 40bb756..73fe38b 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java @@ -1,8 +1,12 @@ package com.hdl.photovoltaic.other; +import android.app.Dialog; import android.content.Context; import android.os.Handler; import android.os.Looper; +import android.widget.Toast; + +import androidx.appcompat.app.AlertDialog; import com.hdl.photovoltaic.enums.ShowErrorMode; @@ -12,29 +16,13 @@ public class HdlThreadLogic { private static final Handler handler = new Handler(Looper.getMainLooper()); - /** - * 鍒囨崲鍥炰富绾跨▼ - * - * @param run 鍥炶皟 - */ - public static void runMainThread(Runnable run) { - try { - if (Looper.myLooper() == Looper.getMainLooper()) { - run.run(); - } else { - handler.post(run); - } - } catch (Exception e) { - exception(e, ShowErrorMode.YES); - } - } /** * 鍒囨崲鍥炰富绾跨▼ * * @param run 鍥炶皟 - * @param context 涓婁笅鏂� - * @param showErrorMode 鏄惁鏄剧ず閿欒 + * @param context 涓婁笅鏂�(涓嶉渶瑕佸脊妗嗗~null) + * @param showErrorMode 鏄惁鏄剧ず閿欒(涓嶉渶瑕佹樉绀洪敊璇~null) */ public static void runMainThread(Runnable run, Context context, ShowErrorMode showErrorMode) { try { @@ -44,36 +32,17 @@ handler.post(run); } } catch (Exception e) { - exception(e, showErrorMode); + exception(e, showErrorMode, context); } } - /** - * 瀛愮嚎绋� - * - * @param run 鍥炶皟 - */ - public static void runThread(Runnable run) { - - new Thread(new Runnable() { - @Override - public void run() { - try { - run.run(); - } catch (Exception e) { - exception(e, ShowErrorMode.NO); - } - } - }).start(); - - } /** * 瀛愮嚎绋� * * @param run 鍥炶皟 - * @param context 涓婁笅鏂� - * @param showErrorMode 鏄惁鏄剧ず閿欒 + * @param context 涓婁笅鏂�(涓嶉渶瑕佸脊妗嗗~null) + * @param showErrorMode 鏄惁鏄剧ず閿欒(涓嶉渶瑕佸~null) */ public static void runThread(Runnable run, Context context, ShowErrorMode showErrorMode) { @@ -83,7 +52,7 @@ try { run.run(); } catch (Exception e) { - exception(e, showErrorMode); + exception(e, showErrorMode, context); } } }).start(); @@ -91,7 +60,15 @@ } - private static void exception(Exception e, ShowErrorMode showErrorMode) { + /** + * @param e 寮傚父淇℃伅绫� + * @param context 涓婁笅鏂�(涓嶉渶瑕佸脊妗嗗~null) + * @param showErrorMode 鏄惁鏄剧ず閿欒(涓嶉渶瑕佸~null) + */ + private static void exception(Exception e, ShowErrorMode showErrorMode, Context context) { + if (showErrorMode == null || context == null || e == null) { + return; + } if (showErrorMode == ShowErrorMode.NO) { return; } @@ -99,16 +76,16 @@ handler.post(new Runnable() { @Override public void run() { -// Dialog alertDialog = new AlertDialog.Builder(HDLApp.getInstance().getApplicationContext()). -// setTitle("鎶辨瓑绋嬪簭鍑虹幇閿欒浜�,鐐瑰嚮\"纭\"鑾峰彇鏇村璇︾粏淇℃伅."). -// setMessage(e.getMessage()). -// create(); -// alertDialog.show(); + Dialog alertDialog = new AlertDialog.Builder(context). + setTitle("鎶辨瓑绋嬪簭鍑虹幇閿欒浜�,鐐瑰嚮\"纭\"鑾峰彇鏇村璇︾粏淇℃伅."). + setMessage(e.getMessage()). + create(); + alertDialog.show(); //鎻愮ず -// AlertDialog alertDialog=new AlertDialog(HDLApp.getInstance().getApplicationContext(), androidx.fragment.R.style.TextAppearance_Compat_Notification); +// AlertDialog alertDialog = new AlertDialog(context, androidx.fragment.R.style.TextAppearance_Compat_Notification); // alertDialog.setTitle("鎶辨瓑绋嬪簭鍑虹幇閿欒浜�"); // alertDialog.show(); - //Toast.makeText(HDLApp.getInstance().getApplicationContext(), "鎶辨瓑绋嬪簭鍑虹幇閿欒浜�", Toast.LENGTH_SHORT).show(); +// Toast.makeText(context, "鎶辨瓑绋嬪簭鍑虹幇閿欒浜�", Toast.LENGTH_SHORT).show(); } }); diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/home/MeFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/home/me/MeFragment.java similarity index 96% rename from app/src/main/java/com/hdl/photovoltaic/ui/home/MeFragment.java rename to app/src/main/java/com/hdl/photovoltaic/ui/home/me/MeFragment.java index 1ad47a2..665eea6 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/home/MeFragment.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/home/me/MeFragment.java @@ -1,4 +1,4 @@ -package com.hdl.photovoltaic.ui.home; +package com.hdl.photovoltaic.ui.home.me; import android.os.Bundle; import android.view.View; diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/home/HouseListFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/home/powerstation/HouseListFragment.java similarity index 85% rename from app/src/main/java/com/hdl/photovoltaic/ui/home/HouseListFragment.java rename to app/src/main/java/com/hdl/photovoltaic/ui/home/powerstation/HouseListFragment.java index 46139f7..dd7d69f 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/home/HouseListFragment.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/home/powerstation/HouseListFragment.java @@ -1,4 +1,4 @@ -package com.hdl.photovoltaic.ui.home; +package com.hdl.photovoltaic.ui.home.powerstation; import android.content.Context; import android.hardware.camera2.CameraManager; @@ -54,12 +54,7 @@ viewBinding.toolbarTopFragmentHouseListRl.topMoreIv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { -// try { -// manager.setTorchMode("0",true); -// } catch (CameraAccessException e) { -// e.printStackTrace(); -// } -// flashLightUtils.open(); + } }); //璁剧疆涓嬫媺绠ご棰滆壊 @@ -67,12 +62,7 @@ viewBinding.fragmentHouseSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { -// flashLightUtils.cloes(); -// try { -// manager.setTorchMode("0",false); -// } catch (CameraAccessException e) { -// e.printStackTrace(); -// } + viewBinding.fragmentHouseSrl.setRefreshing(false); Log.d("HouseListFragment", "涓嬫媺鍒锋柊"); } 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(); + } + } + + } diff --git a/app/src/main/res/layout/activity_my_power_station.xml b/app/src/main/res/layout/activity_my_power_station.xml index d69baa7..5410ff4 100644 --- a/app/src/main/res/layout/activity_my_power_station.xml +++ b/app/src/main/res/layout/activity_my_power_station.xml @@ -11,7 +11,7 @@ <androidx.fragment.app.FragmentContainerView android:id="@+id/my_power_station_fcv1" - android:name="com.hdl.photovoltaic.ui.home.HouseListFragment" + android:name="com.hdl.photovoltaic.ui.home.powerstation.HouseListFragment" android:layout_width="match_parent" android:layout_height="0dp" android:visibility="gone" @@ -22,7 +22,7 @@ <!--鎴戠殑-Fragment--> <androidx.fragment.app.FragmentContainerView android:id="@+id/my_power_station_fcv2" - android:name="com.hdl.photovoltaic.ui.home.MeFragment" + android:name="com.hdl.photovoltaic.ui.home.me.MeFragment" android:layout_width="match_parent" android:layout_height="0dp" android:visibility="gone" -- Gitblit v1.8.0