Skip to content
  • P
    Projects
  • G
    Groups
  • S
    Snippets
  • Help

android / dayu

  • This project
    • Loading...
  • Sign in
Go to a project
  • Project
  • Repository
  • Issues 0
  • Merge Requests 0
  • Pipelines
  • Wiki
  • Snippets
  • Members
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Files
  • Commits
  • Branches
  • Tags
  • Contributors
  • Graph
  • Compare
  • Charts
Commit 91bf5283 authored 10 months ago by han xu's avatar han xu
Browse files
Options
  • Browse Files
  • Download
  • Email Patches
  • Plain Diff

添加权限获取提示弹窗

parent e2aa10f7 dev_xx_web … dev dev_xx_241116 dev_xx_250108_toast dev_xx_250224_report dev_xx_250414_sop
Hide whitespace changes
Inline Side-by-side
Showing with 84 additions and 14 deletions
  • baseSDK/src/main/java/com/dayu/utils/MPermissionUtils.java
baseSDK/src/main/java/com/dayu/utils/MPermissionUtils.java
View file @ 91bf5283
package com.dayu.utils;
import android.Manifest;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Context;
......@@ -61,27 +62,96 @@ public class MPermissionUtils {
checkCallingObjectSuitability(object);
mOnPermissionListener = callback;
Activity activity;
if (object instanceof Activity) {
activity = (Activity) object;
} else if (object instanceof android.app.Fragment) {
activity = ((android.app.Fragment) object).getActivity();
} else if (object instanceof Fragment) {
activity = ((Fragment) object).getActivity();
} else {
return;
}
if (checkPermissions(getContext(object), permissions)) {
if (mOnPermissionListener != null)
mOnPermissionListener.onPermissionGranted();
} else {
List<String> deniedPermissions = getDeniedPermissions(getContext(object), permissions);
if (deniedPermissions.size() > 0) {
mRequestCode = requestCode;
if (object instanceof Activity) {
((Activity) object).requestPermissions(deniedPermissions
.toArray(new String[deniedPermissions.size()]), requestCode);
} else if (object instanceof android.app.Fragment) {
((android.app.Fragment) object).requestPermissions(deniedPermissions
.toArray(new String[deniedPermissions.size()]), requestCode);
} else if (object instanceof Fragment) {
((Fragment) object).requestPermissions(deniedPermissions
.toArray(new String[deniedPermissions.size()]), requestCode);
} else {
mRequestCode = -1;
String content = getDefaultPermissionContent(permissions);
CustomDialog mDialog = new CustomDialog(activity, com.dayu.baselibrary.R.style.CustomDialog, content
, (dialog, confirm) -> {
if (confirm) {
List<String> deniedPermissions = getDeniedPermissions(getContext(object), permissions);
if (deniedPermissions.size() > 0) {
mRequestCode = requestCode;
if (object instanceof Activity) {
((Activity) object).requestPermissions(deniedPermissions
.toArray(new String[deniedPermissions.size()]), requestCode);
} else if (object instanceof android.app.Fragment) {
((android.app.Fragment) object).requestPermissions(deniedPermissions
.toArray(new String[deniedPermissions.size()]), requestCode);
} else if (object instanceof Fragment) {
((Fragment) object).requestPermissions(deniedPermissions
.toArray(new String[deniedPermissions.size()]), requestCode);
} else {
mRequestCode = -1;
}
}
}else{
mOnPermissionListener.onPermissionDenied();
}
dialog.dismiss();
});
mDialog.setTitle("温馨提示")
.setPositiveButton("去开启")
.setNegativeButton("取消");
mDialog.show();
// List<String> deniedPermissions = getDeniedPermissions(getContext(object), permissions);
// if (deniedPermissions.size() > 0) {
// mRequestCode = requestCode;
// if (object instanceof Activity) {
// ((Activity) object).requestPermissions(deniedPermissions
// .toArray(new String[deniedPermissions.size()]), requestCode);
// } else if (object instanceof android.app.Fragment) {
// ((android.app.Fragment) object).requestPermissions(deniedPermissions
// .toArray(new String[deniedPermissions.size()]), requestCode);
// } else if (object instanceof Fragment) {
// ((Fragment) object).requestPermissions(deniedPermissions
// .toArray(new String[deniedPermissions.size()]), requestCode);
// } else {
// mRequestCode = -1;
// }
// }
}
}
///获取默认权限提示文案
private static String getDefaultPermissionContent(String[] permissions)
{
for (String permission : permissions) {
switch (permission){
case Manifest.permission.RECORD_AUDIO:
case Manifest.permission.CAMERA:
return "大鱼需要获取您的相机、录音权限,用于进行拍摄照片视频等。";
case Manifest.permission.READ_EXTERNAL_STORAGE:
case Manifest.permission.WRITE_EXTERNAL_STORAGE:
return "大鱼需要获取您的相册、文件读写权限,用于保存或上传照片或文件等。";
case Manifest.permission.ACCESS_COARSE_LOCATION:
return "大鱼需要你的定位权限,用于记录处理sop的当前位置。";
default:
return "大鱼需要获取您的设备权限,用于进行当前业务操作。";
}
}
return "大鱼需要获取您的设备权限,用于进行当前业务操作。";
}
/**
......
This diff is collapsed. Click to expand it.
  • Write
  • Preview
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment