From 80f2ca2df62ff1cd03046864af504245be078eb2 Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期四, 05 六月 2025 10:37:28 +0800 Subject: [PATCH] 2025年06月05日10:37:26 --- app/src/main/java/com/hdl/photovoltaic/widget/popupview/CameraAlbumPopWindow.java | 81 +++++++++++++++++++++++----------------- 1 files changed, 46 insertions(+), 35 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 0ad2f74..cfcdf76 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 @@ -34,6 +34,7 @@ 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; @@ -102,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(); @@ -120,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) { @@ -131,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; @@ -230,15 +236,15 @@ // 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.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); + //鍏煎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); @@ -434,34 +440,39 @@ * 浠庣浉鍐屼腑鑾峰彇鍥剧墖 */ private void select_photo() { - String permission = Manifest.permission.WRITE_EXTERNAL_STORAGE; - int status = PermissionUtils.getPermissionState(mContext, permission); - switch (status) { - case PermissionUtils.STATUS_SUCCESS: - openAlbum(); - break; - case PermissionUtils.STATUS_REFUSE: - case PermissionUtils.STATUS_DEFAULT: - XXPermissions.with(mContext) - .permission(permission) - .request(new OnPermissionCallback() { - @Override - public void onGranted(List<String> permissions, boolean all) { - SharedPreUtils.putBoolean(permission, true); - openAlbum(); - } + if (Build.VERSION.SDK_INT >= 33) { + //榛樿鎴愬姛 + openAlbum(); + } else { + String permission = Manifest.permission.WRITE_EXTERNAL_STORAGE; + int status = PermissionUtils.getPermissionState(mContext, permission); + switch (status) { + case PermissionUtils.STATUS_SUCCESS: + openAlbum(); + break; + case PermissionUtils.STATUS_REFUSE: + case PermissionUtils.STATUS_DEFAULT: + XXPermissions.with(mContext) + .permission(permission) + .request(new OnPermissionCallback() { + @Override + public void onGranted(List<String> permissions, boolean all) { + SharedPreUtils.putBoolean(permission, true); + openAlbum(); + } - @Override - public void onDenied(List<String> permissions, boolean never) { - SharedPreUtils.putBoolean(permission, true); - } - }); - break; - case PermissionUtils.STATUS_REFUSE_PERMANENT: + @Override + public void onDenied(List<String> permissions, boolean never) { + SharedPreUtils.putBoolean(permission, true); + } + }); + break; + case PermissionUtils.STATUS_REFUSE_PERMANENT: // HdlThreadLogic.toast(mContext, R.string.permission_open); - HdlDialogLogic.getInstance().showSettingPermissionDialog(mContext); - break; + HdlDialogLogic.getInstance().showSettingPermissionDialog(mContext); + break; + } } } -- Gitblit v1.8.0