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" /><!–澶栭儴瀛樺偍鐩綍璁块棶鏉冮檺 璋锋瓕play涓婃灦涓嶄簡–>--> + <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