Android6.0权限permission提醒工具类
来源:互联网 发布:咪咕善跑是什么软件 编辑:程序博客网 时间:2024/06/01 14:51
package com.yiban.caesar.Utils;import android.content.Context;import android.content.pm.PackageManager;import android.content.pm.PermissionInfo;import android.support.v4.content.ContextCompat;import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * Created by LXL on 2017/5/25. */public class CheckPermissionUtils { private static String TAG = "CheckPermissionUtils"; /** * check this permission is need to request * * @param context context * @param permissionArray permissionArray * @return */ public static String[] getNeededPermission(Context context, String[] permissionArray) { if (context == null || permissionArray == null || permissionArray.length == 0) { return new String[]{}; } List<String> permissionList = new ArrayList<>(); for (int i = 0; i < permissionArray.length; i++) { if (CheckPermissionUtils.isNeedAddPermission(context, permissionArray[i])) { permissionList.add(permissionArray[i]); } } return permissionList.toArray(new String[permissionList.size()]); } /** * check permission is need ? * * @return true: need permission false: don't need permission */ public static boolean isNeedAddPermission(Context context, String permission) { return ContextCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED; } /** * check permission and show setting dialog for user * * @param getPermissionListener getPermissionListener * @param context context * @param permissions permissions * @param grantResults grantResults */ public static void checkPermissionResult(OnHasGetPermissionListener getPermissionListener, Context context , String[] permissions, int[] grantResults) { if (context == null || permissions == null || grantResults == null || getPermissionListener == null) { UtilsTools.Log_e(TAG, "context=" + context + "\n" + "permissions=" + Arrays.toString(permissions) + "\n" + "grantResults=" + Arrays.toString(grantResults)); return; } UtilsTools.Log_e(TAG, "permissions=" + Arrays.toString(permissions) + ",grantResults=" + Arrays.toString(grantResults)); // save the request permission List<PermissionInfo> list = new ArrayList<>();//Your permission list if (grantResults.length <= 0) { return; } // check permission request result for (int i = 0; i < permissions.length; i++) { if (grantResults[i] != PackageManager.PERMISSION_GRANTED) { PermissionInfo info = null; try { info = context.getPackageManager().getPermissionInfo(permissions[i], 0); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } if (info != null) { list.add(info); } } } // is we has all permission if (list.size() == 0) { UtilsTools.Log_e(TAG, "checkPermissionResult onSuccess"); getPermissionListener.onSuccess(); } else { getPermissionListener.onFail(); // show the dialog for user to setting UtilsTools.Log_e(TAG, "checkPermissionResult onFail"); } } public interface OnHasGetPermissionListener { void onSuccess(); void onFail(); }}
public void requestPermissiontest() { // you needer permissions String[] permissions = {Manifest.permission.READ_PHONE_STATE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.RECORD_AUDIO}; // check it is needed permissions = CheckPermissionUtils.getNeededPermission(this, permissions); // requestPermissions if (permissions.length > 0) { requestPermissions(permissions, REQUEST_CODE_TEST); } } public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode) { case REQUEST_CODE_TEST: if (grantResults.length > 0) { return; } if (!CheckPermissionUtils.isNeedAddPermission(this, Manifest.permission.READ_PHONE_STATE)) { // do something Toast.makeText(this, "申请权限成功:" + Manifest.permission.READ_PHONE_STATE, Toast.LENGTH_LONG).show(); } if (!CheckPermissionUtils.isNeedAddPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) { // do something Toast.makeText(this, "申请权限成功:" + Manifest.permission.WRITE_EXTERNAL_STORAGE, Toast.LENGTH_LONG).show(); } break; } super.onRequestPermissionsResult(requestCode, permissions, grantResults); }
阅读全文
0 0
- Android6.0权限permission提醒工具类
- android6.0+ Permission权限使用
- android6.0(M) 验证权限工具类+ContextCompat.checkSelfPermission(context, permission)
- android6.0(M) 验证权限工具类+ContextCompat.checkSelfPermission(context, permission)
- Android6.0 Runtime Permission 动态权限
- Android6.0 动态权限(Runtime Permission)
- Android6.0 动态权限(Runtime Permission)
- android6.0以上权限申请工具类
- Android6.0手机权限处理工具类
- android6.0动态权限申请工具类
- android6.0以上权限申请工具类
- Android6.0权限问题,并撰写常用权限工具类
- Android6.0权限问题,并撰写常用权限工具类
- Android Permission权限列表以及Android6.0以后获取权限
- Android6.0 运行时权限(runtime permission)
- Android 权限Permission大全及Android6.0动态申请步骤
- 【笔记】Android6.0之后权限请求工具类
- Android6.0权限系统以及工具类的实现
- TagLostExecpion
- XFS实现原理详解
- python操作Excel读写--使用xlrd
- 【PMP认证考试之个人总结】第 6 章 项目成本管理
- Java基础
- Android6.0权限permission提醒工具类
- @rpath, @loader_path, @executable_path
- 文件管理添加选项FTP
- 深入分析Java ClassLoader原理
- Jetson TX1开发笔记(六):V4L2+OpenCV3.1以MJPG格式读取USB摄像头图像并实时显示
- 将hive查询到的结果插入动态分区表
- 离散题目1
- vue学习笔记
- Sublime Text编辑