From 44ba605a4e850efa757020da5fb4cf02bdf6e3ab Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期一, 08 九月 2025 10:55:18 +0800
Subject: [PATCH] 2025年09月08日10:55:15
---
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