Commit 91bf5283 by han xu

添加权限获取提示弹窗

parent e2aa10f7
package com.dayu.utils; package com.dayu.utils;
import android.Manifest;
import android.annotation.TargetApi; import android.annotation.TargetApi;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
...@@ -61,27 +62,96 @@ public class MPermissionUtils { ...@@ -61,27 +62,96 @@ public class MPermissionUtils {
checkCallingObjectSuitability(object); checkCallingObjectSuitability(object);
mOnPermissionListener = callback; 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 (checkPermissions(getContext(object), permissions)) {
if (mOnPermissionListener != null) if (mOnPermissionListener != null)
mOnPermissionListener.onPermissionGranted(); mOnPermissionListener.onPermissionGranted();
} else { } else {
List<String> deniedPermissions = getDeniedPermissions(getContext(object), permissions);
if (deniedPermissions.size() > 0) { String content = getDefaultPermissionContent(permissions);
mRequestCode = requestCode;
if (object instanceof Activity) { CustomDialog mDialog = new CustomDialog(activity, com.dayu.baselibrary.R.style.CustomDialog, content
((Activity) object).requestPermissions(deniedPermissions , (dialog, confirm) -> {
.toArray(new String[deniedPermissions.size()]), requestCode); if (confirm) {
} else if (object instanceof android.app.Fragment) { List<String> deniedPermissions = getDeniedPermissions(getContext(object), permissions);
((android.app.Fragment) object).requestPermissions(deniedPermissions if (deniedPermissions.size() > 0) {
.toArray(new String[deniedPermissions.size()]), requestCode); mRequestCode = requestCode;
} else if (object instanceof Fragment) { if (object instanceof Activity) {
((Fragment) object).requestPermissions(deniedPermissions ((Activity) object).requestPermissions(deniedPermissions
.toArray(new String[deniedPermissions.size()]), requestCode); .toArray(new String[deniedPermissions.size()]), requestCode);
} else { } else if (object instanceof android.app.Fragment) {
mRequestCode = -1; ((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 "大鱼需要获取您的设备权限,用于进行当前业务操作。";
} }
/** /**
......
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