From e57e1c01a52a326343122d458ad3bd330fc9d347 Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期五, 07 二月 2025 16:40:29 +0800 Subject: [PATCH] Merge branch '1.5.1' --- app/src/main/java/com/hdl/photovoltaic/widget/popupview/CameraAlbumPopWindow.java | 74 ++++++++++++++++++++++++------------- 1 files changed, 48 insertions(+), 26 deletions(-) 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..7d19b72 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,11 +27,14 @@ 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; import com.hdl.photovoltaic.utils.PermissionUtils; import com.hdl.photovoltaic.utils.SharedPreUtils; +import com.hdl.photovoltaic.widget.PermissionExplanationDialog; import com.hjq.permissions.OnPermissionCallback; import com.hjq.permissions.XXPermissions; @@ -100,10 +103,12 @@ */ private void checkPermission_After(final Activity context, final int tag) { String permission = Manifest.permission.CAMERA; + // 鏈巿鏉� 濡傛灉搴旂敤绋嬪簭娌℃湁鎵�闇�鐨勬潈闄愶紝鍒欐樉绀鸿В閲婅鏄� + PermissionExplanationDialog.getInstance().showPortConflictPdDialog(context, context.getString(R.string.camera_storage_instructions), context.getString(R.string.camera_storage_purpose)); int status = PermissionUtils.getPermissionState(context, permission); - switch (status) { case PermissionUtils.STATUS_SUCCESS: + PermissionExplanationDialog.getInstance().dismiss(); dismiss(); if (0 == tag) { take_photo(); @@ -118,6 +123,7 @@ .request(new OnPermissionCallback() { @Override public void onGranted(List<String> permissions, boolean all) { + PermissionExplanationDialog.getInstance().dismiss(); dismiss(); SharedPreUtils.putBoolean(permission, true); if (0 == tag) { @@ -129,12 +135,14 @@ @Override public void onDenied(List<String> permissions, boolean never) { + PermissionExplanationDialog.getInstance().dismiss(); dismiss(); SharedPreUtils.putBoolean(permission, true); } }); break; case PermissionUtils.STATUS_REFUSE_PERMANENT: + PermissionExplanationDialog.getInstance().dismiss(); // HdlThreadLogic.toast(mContext, R.string.permission_open); HdlDialogLogic.getInstance().showSettingPermissionDialog(mContext); break; @@ -203,32 +211,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 { - //鍏煎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.debugtreasure.dc.fileprovider",outputImagepath); + 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); +// intent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI); + + //鍏煎android7.0 浣跨敤鍏变韩鏂囦欢鐨勫舰寮� + ContentValues contentValues = new ContentValues(1); + 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.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 +262,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 { -- Gitblit v1.8.0