From 9d6573a634ca739ac2c970206db223bb845eb6ce Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 07 一月 2025 15:17:19 +0800
Subject: [PATCH] 2025年01月07日15:17:17

---
 app/src/main/java/com/hdl/photovoltaic/widget/popupview/CameraAlbumPopWindow.java |   60 ++++++++++++-------
 app/src/main/java/com/hdl/photovoltaic/ui/me/CPersonalDataActivity.java           |   36 ++++++++---
 app/src/main/AndroidManifest.xml                                                  |   56 ++++++++++++------
 app/src/main/res/layout/activity_test_log.xml                                     |    1 
 4 files changed, 101 insertions(+), 52 deletions(-)

diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9e9e872..2653181 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -5,13 +5,20 @@
 
     <uses-permission
         android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
-        tools:ignore="ProtectedPermissions" /> <!-- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> -->
-    <uses-permission android:name="android.permission.VIBRATE" /> <!-- <uses-permission android:name="android.permission.INTERNET" /> -->
-    <!-- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> -->
-    <!-- <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> -->
-    <!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> -->
-    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
-    <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" /> <!-- <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> -->
+        tools:ignore="ProtectedPermissions" />
+
+
+    <!--Android13 鐓х墖-->
+    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
+    <!--Android13 瑙嗛-->
+    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
+    <!--Android13 闊抽-->
+    <!--    <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />-->
+    <uses-permission android:name="android.permission.VIBRATE" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+    <!--    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />&lt;!&ndash;澶栭儴瀛樺偍鐩綍璁块棶鏉冮檺 璋锋瓕play涓婃灦涓嶄簡&ndash;&gt;-->
+    <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> <!-- wifi鐘舵�佹潈闄� -->
     <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
     <uses-permission android:name="android.permission.INTERNET" /> <!-- 寮�鍚綉缁滄潈闄� -->
@@ -20,13 +27,10 @@
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- android 10.0浣跨敤wifi api鏂版坊鍔犵殑鏉冮檺 -->
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
     <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
-    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- bugly鎵�闇�鏉冮檺 -->
-    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- <uses-permission android:name="android.permission.INTERNET" /> -->
-    <uses-permission android:name="android.permission.CAMERA" /> <!-- <uses-permission android:name="android.permission.INTERNET" /> -->
+    <uses-permission android:name="android.permission.CAMERA" />
     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- bugly鎵�闇�鏉冮檺 -->
-    <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> <!-- <uses-permission android:name="android.permission.INTERNET" /> -->
-    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- <uses-permission android:name="android.permission.INTERNET" /> -->
+    <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
     <!-- UNI鐩告満鍜屽瓨鍌ㄧ殑鏉冮檺 -->
     <uses-feature android:name="android.hardware.camera" />
     <uses-feature android:name="android.hardware.camera.autofocus" />
@@ -38,14 +42,12 @@
     <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
     <uses-permission android:name="android.permission.FLASHLIGHT" />
     <uses-permission android:name="android.permission.WAKE_LOCK" />
-    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.CALL_PHONE" />
     <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
     <uses-permission android:name="android.permission.BLUETOOTH" /> <!-- Optional. Required for location feature -->
     <!-- 涓轰簡鎻愰珮sdk璇嗗埆鍞竴鐢ㄦ埛鐨勮兘鍔涳紝淇濊瘉娑堟伅鎺ㄩ�佺殑绮惧噯閫佽揪锛屽缓璁泦鎴愪互涓嬫潈闄愶紙鍙�夛級 -->
     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
     <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
-    <uses-permission android:name="android.permission.GET_TASKS" />
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 濡傛偍闇�瑕佹帴鍏ュ湴鐞嗗洿鏍忎笟鍔★紝寤鸿闆嗘垚浠ヤ笅鏉冮檺锛堝彲閫夛級 -->
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
@@ -72,9 +74,9 @@
         android:allowBackup="true"
         android:icon="@drawable/desktop_logo"
         android:label="@string/app_name"
+        android:persistent="true"
         android:requestLegacyExternalStorage="true"
         android:supportsRtl="true"
-        android:persistent="true"
         android:theme="@style/Theme.PhotovoltaicDebug">
         <activity
             android:name=".ui.newC.PowerStationsMoveActivity"
@@ -176,8 +178,22 @@
 
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
-        </activity> <!-- 娉ㄥ唽鏈嶅姟 -->
+        </activity>
+
+        <provider
+            android:name="androidx.core.content.FileProvider"
+            android:authorities="com.hdl.photovoltaic.fileProvider"
+            android:exported="false"
+            android:grantUriPermissions="true"
+            tools:replace="android:authorities">
+            <meta-data
+                android:name="android.support.FILE_PROVIDER_PATHS"
+                android:resource="@xml/provider_paths"
+                tools:replace="android:resource" />
+        </provider>
+        <!-- 娉ㄥ唽鏈嶅姟 -->
         <service android:name=".internet.HttpServer.MyNanoHttpService" /> <!-- 鍔犲畠uniapp鎵嶈兘鍞よ捣鐩告満 -->
+
         <provider
             android:name="io.dcloud.common.util.DCloud_FileProvider"
             android:authorities="com.hdl.photovoltaic.dc.fileprovider"
@@ -219,9 +235,9 @@
             android:name=".services.UniappService"
             android:enabled="true"
             android:exported="true">
-        <intent-filter>
-            <action android:name="UniappService.ACTION" />
-        </intent-filter>
+            <intent-filter>
+                <action android:name="UniappService.ACTION" />
+            </intent-filter>
         </service>
 
         <meta-data
@@ -235,6 +251,6 @@
             android:value="true" />
     </application>
     <queries>
-        <package android:name="com.hdl.photovoltaic.services"/>
+        <package android:name="com.hdl.photovoltaic.services" />
     </queries>
 </manifest>
\ No newline at end of file
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/me/CPersonalDataActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/me/CPersonalDataActivity.java
index 6087317..f0e1da1 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/me/CPersonalDataActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/me/CPersonalDataActivity.java
@@ -1,5 +1,6 @@
 package com.hdl.photovoltaic.ui.me;
 
+
 import android.Manifest;
 import android.content.Intent;
 import android.os.Build;
@@ -38,6 +39,7 @@
 import com.hdl.photovoltaic.widget.popupview.CameraAlbumPopWindow;
 
 import java.io.File;
+import java.util.Objects;
 
 
 /**
@@ -72,6 +74,7 @@
     }
 
     private void initData() {
+
 //        generalPermission = registerForActivityResult(new ActivityResultContracts.RequestMultiplePermissions(), new ActivityResultCallback<Map<String, Boolean>>() {
 //            @Override
 //            public void onActivityResult(Map<String, Boolean> result) {
@@ -103,24 +106,37 @@
                 finish();
             }
         });
+
         viewBinding.personalDataUserPortraitIl.getRoot().setOnClickListener(new View.OnClickListener() {
 
             @Override
             public void onClick(View v) {
                 //Manifest.permission.WRITE_EXTERNAL_STORAGE 璇诲啓璁惧涓婄殑鐓х墖浠ュ強鏂囦欢
                 //generalPermission.launch(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE});
-
-                PermissionUtils.requestPermissionsResultCallback(_mActivity, Manifest.permission.WRITE_EXTERNAL_STORAGE, new PermissionUtils.PermissionState() {
-                    @Override
-                    public void Success(int value) {
-                        if (value == PermissionUtils.STATUS_REFUSE_PERMANENT) {
+                //Android 13浠ヤ笂鐢ㄥ埆鐨勬潈闄�
+                if (Build.VERSION.SDK_INT >= 33) {
+                    PermissionUtils.requestPermissionsResultCallback(_mActivity, Manifest.permission.READ_MEDIA_IMAGES, new PermissionUtils.PermissionState() {
+                        @Override
+                        public void Success(int value) {
+                            if (value == PermissionUtils.STATUS_REFUSE_PERMANENT) {
 //                            HdlThreadLogic.toast(_mActivity, R.string.permission_open);
-                            return;
+                                return;
+                            }
+                            changedUserAvatar();
                         }
-                        changedUserAvatar();
-                    }
-                }, true);
-
+                    }, true);
+                } else {
+                    PermissionUtils.requestPermissionsResultCallback(_mActivity, Manifest.permission.WRITE_EXTERNAL_STORAGE, new PermissionUtils.PermissionState() {
+                        @Override
+                        public void Success(int value) {
+                            if (value == PermissionUtils.STATUS_REFUSE_PERMANENT) {
+//                            HdlThreadLogic.toast(_mActivity, R.string.permission_open);
+                                return;
+                            }
+                            changedUserAvatar();
+                        }
+                    }, true);
+                }
             }
         });
 
diff --git a/app/src/main/java/com/hdl/photovoltaic/widget/popupview/CameraAlbumPopWindow.java b/app/src/main/java/com/hdl/photovoltaic/widget/popupview/CameraAlbumPopWindow.java
index 642db56..0ad2f74 100644
--- a/app/src/main/java/com/hdl/photovoltaic/widget/popupview/CameraAlbumPopWindow.java
+++ b/app/src/main/java/com/hdl/photovoltaic/widget/popupview/CameraAlbumPopWindow.java
@@ -27,6 +27,8 @@
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 
+import androidx.core.content.FileProvider;
+
 import com.hdl.photovoltaic.R;
 import com.hdl.photovoltaic.other.HdlDialogLogic;
 import com.hdl.photovoltaic.other.HdlThreadLogic;
@@ -203,32 +205,46 @@
      * 鎷嶇収鑾峰彇鍥剧墖
      **/
     private void take_photo() {
-        //鑾峰彇绯荤当鐗堟湰
-        int currentapiVersion = Build.VERSION.SDK_INT;
-        // 婵�娲荤浉鏈�
-        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
-        // 鍒ゆ柇瀛樺偍鍗℃槸鍚﹀彲浠ョ敤锛屽彲鐢ㄨ繘琛屽瓨鍌�
-        SimpleDateFormat timeStampFormat = new SimpleDateFormat(
-                "yyyy_MM_dd_HH_mm_ss", Locale.ENGLISH);
-        String filename = timeStampFormat.format(new Date());
-        outputImagepath = new File(hdl_Dir,
-                filename + ".jpg");
-        if (currentapiVersion < 24) {
-            // 浠庢枃浠朵腑鍒涘缓uri
-            Uri uri = Uri.fromFile(outputImagepath);
-            intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
-        } else {
+        try {
+            //鑾峰彇绯荤当鐗堟湰
+            int currentapiVersion = Build.VERSION.SDK_INT;
+            // 婵�娲荤浉鏈�
+            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
+            // 鍒ゆ柇瀛樺偍鍗℃槸鍚﹀彲浠ョ敤锛屽彲鐢ㄨ繘琛屽瓨鍌�
+            SimpleDateFormat timeStampFormat = new SimpleDateFormat(
+                    "yyyy_MM_dd_HH_mm_ss", Locale.ENGLISH);
+            String filename = timeStampFormat.format(new Date());
+            outputImagepath = new File(hdl_Dir,
+                    filename + ".jpg");
+            if (currentapiVersion < 24) {
+                // 浠庢枃浠朵腑鍒涘缓uri
+                Uri uri = Uri.fromFile(outputImagepath);
+                intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
+            } else {
+//                //鍏煎android7.0 浣跨敤鍏变韩鏂囦欢鐨勫舰寮�
+//                ContentValues contentValues = new ContentValues(1);
+//                contentValues.put(MediaStore.Images.Media.DATA, outputImagepath.getAbsolutePath());
+//                Uri uri = mContext.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);
+//                intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
+//                Uri photoURI = FileProvider.getUriForFile(mContext, "com.hdl.photovoltaic.dc.fileprovider", outputImagepath);
+//                intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
+//                intent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
+
             //鍏煎android7.0 浣跨敤鍏变韩鏂囦欢鐨勫舰寮�
             ContentValues contentValues = new ContentValues(1);
-            contentValues.put(MediaStore.Images.Media.DATA, outputImagepath.getAbsolutePath());
+            contentValues.put(MediaStore.Images.Media.DISPLAY_NAME, outputImagepath.getName());
+            contentValues.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
             Uri uri = mContext.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);
             intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
-//                Uri photoURI= FileProvider.getUriForFile(mContext,"com.hdl.debugtreasure.dc.fileprovider",outputImagepath);
-//                intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
-//                intent.putExtra(MediaStore.EXTRA_OUTPUT,photoURI);
+            Uri photoURI = FileProvider.getUriForFile(mContext, "com.hdl.photovoltaic.fileProvider", outputImagepath);
+            intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
+            intent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
+            }
+            // 寮�鍚竴涓甫鏈夎繑鍥炲�肩殑Activity锛岃姹傜爜涓篜HOTO_REQUEST_CAREMA
+            ((Activity) mContext).startActivityForResult(intent, TAKE_PHOTO);
+        } catch (Exception e) {
+            HdlThreadLogic.toast(mContext, R.string.loading_not_supported);
         }
-        // 寮�鍚竴涓甫鏈夎繑鍥炲�肩殑Activity锛岃姹傜爜涓篜HOTO_REQUEST_CAREMA
-        ((Activity) mContext).startActivityForResult(intent, TAKE_PHOTO);
 
     }
 
@@ -240,7 +256,7 @@
             HdlThreadLogic.toast(mContext, R.string.camera_album_file_save_fial);
         } else {
             if (!TextUtils.isEmpty(outputImagepath.getAbsolutePath())) {
-                //(android13,14闇�瑕佸啀璁剧疆-闅愮-)鐗规畩鏉冮檺璁剧疆
+                //娉ㄦ剰锛�(android13,14闇�瑕佸啀璁剧疆-闅愮-)鐗规畩鏉冮檺璁剧疆
                 orc_bitmap = BitmapFactory.decodeFile(outputImagepath.getAbsolutePath());//鑾峰彇鍥剧墖
                 saveBitmap(comp(ImgUpdateDirection(outputImagepath.getAbsolutePath()))); //鍘嬬缉鍥剧墖
             } else {
diff --git a/app/src/main/res/layout/activity_test_log.xml b/app/src/main/res/layout/activity_test_log.xml
index a93b97a..9d97c88 100644
--- a/app/src/main/res/layout/activity_test_log.xml
+++ b/app/src/main/res/layout/activity_test_log.xml
@@ -158,6 +158,7 @@
         android:layout_width="match_parent"
         android:layout_height="@dimen/dp_50"
         android:background="@color/text_FF1C1C1E"
+        android:visibility="gone"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"

--
Gitblit v1.8.0