危险权限列表及动态权限管理工具类(可以直接使用)
来源:互联网 发布:c语言逗号表达式的值 编辑:程序博客网 时间:2024/06/05 08:25
废话不多说,直接上危险权限列表:
危险权限是在Android 6.0版本(Api 23)推出了后才有这说法的, Android 6.0以上增加了动态获取权限api,想要动态获取手机的权限;类似iOS那样,在使用时,弹出对话框,提示用户,请求用户允许;如果你没做处理,就会权限报错。
接下来给大家一个我自己使用的权限管理类,可以直接导入项目使用:
public class PermissionsHelper { /** * 判断权限集合 * * @param permissions 检测权限的集合 * @return 权限已全部获取返回true,未全部获取返回false */ public static boolean checkPermissions(Context mContext, String... permissions) { for (String permission : permissions) { if (!checkPermission(mContext, permission)) return false; } return true; } /** * 判断权限是否获取 * * @param permission 权限名称 * @return 已授权返回true,未授权返回false */ public static boolean checkPermission(Context mContext, String permission) { return ContextCompat.checkSelfPermission(mContext, permission) == PackageManager.PERMISSION_GRANTED; } /** * 获取权限 * * @param resultCode * @param permission */ public static boolean checkPermission(Context mContext, int resultCode, String permission) { if (!checkPermission(mContext, permission)) { if (ActivityCompat.shouldShowRequestPermissionRationale((Activity) mContext, permission)) { // 因为requestPermissions方法会显示不在询问按钮 showMissingPermissionDialog(mContext); //如果用户以前拒绝过改权限申请,则给用户提示 } else { ActivityCompat.requestPermissions((Activity) mContext, new String[]{permission}, resultCode); //进行权限请求 } return false; } else { return true; } } /** * 获取权限 * * @param resultCode * @param permissions */ public static boolean checkPermission(Context mContext, int resultCode, String... permissions) { List<String> list = new ArrayList<>(); for (String permission : permissions) { if (!checkPermission(mContext, permission) && !ActivityCompat.shouldShowRequestPermissionRationale((Activity) mContext, permission)) { list.add(permission); } } if (!list.isEmpty()) { ActivityCompat.requestPermissions((Activity) mContext, list.toArray(new String[list.size()]), resultCode); return false; } else { return true; } } // 显示缺失权限提示 public static void showMissingPermissionDialog(final Context mContext) { AlertDialog.Builder builder = new AlertDialog.Builder(mContext); final AlertDialog alertDialog = builder.create(); builder.setMessage("当前应用缺少必要权限。\n\n请点击\"设置\"-\"权限\"-打开所需权限。\n\n最后点击两次后退按钮,即可返回。"); // 拒绝, 退出应用 builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { alertDialog.dismiss(); } }); builder.setPositiveButton("设置", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { startAppSettings(mContext); } }); builder.show(); } // 启动应用的设置 private static void startAppSettings(Context mContext) { Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); intent.setData(Uri.parse("package:" + mContext.getPackageName())); mContext.startActivity(intent); }}
其中的弹窗效果如下:
为了向别人、向世界证明自己而努力拼搏,而一旦你真的取得了成绩,才会明白:人无须向别人证明什么,只要你能超越自己。
阅读全文
1 0
- 危险权限列表及动态权限管理工具类(可以直接使用)
- Android权限动态管理工具类
- Android6.0动态权限管理工具类
- 危险权限
- 权限管理工具类
- Android运行时权限(危险权限)
- android6.0危险权限动态提示
- Android学习之动态申请危险权限
- Membership权限管理工具的使用
- Android动态权限,EasyPermissions 介绍及使用
- Android程序运行时权限与文件系统权限,与普通权限及危险权限的区别
- Android6.0 权限管理工具类
- React-Native权限管理工具类
- 危险权限和权限组
- Android6危险权限
- 安卓危险权限
- Yii权限管理工具Srbac使用小结
- Android 检测哪些是危险权限(android6.0需要动态授权)
- Android最新手机号正则判断
- 嵌入式linux项目开发(一)——web数据交互
- Qualcomm ramparse usage
- Java 并发编程:volatile的使用及其原理
- 【异常】Tomcat启动异常之Unsupported major.minor version 51.0
- 危险权限列表及动态权限管理工具类(可以直接使用)
- 设计模式之结构型-组合模式(12)
- 在MT6735平台下驱动LCD屏Sitronix-ST7701-LCD
- 【机器学习读书笔记】 k近邻算法(KNN)
- Oracle快速入门003
- jQuery源码剖析-框架结构简述
- 每个人都必须知道的比特币量化交易平台
- 出差归来,谈谈出差的感受(二)
- getRequestURI,getRequestURL的区别