赞
踩
一、自定义
1.在项目的BaseActivity添加代码
/** * 动态获权 * */ /** * 动态获权请求值 */ private var REQUEST_CODE_PERMISSION = 0x00099 protected val TAG = this.javaClass.simpleName /** * 请求权限 * 动态获权 * @param permissions 请求的权限 * @param requestCode 请求权限的请求码 */ open fun requestPermission( permissions: Array<String>, requestCode: Int ) { REQUEST_CODE_PERMISSION = requestCode if (checkPermissions(permissions)) { permissionSuccess(REQUEST_CODE_PERMISSION) } else { try { val needPermissions = getDeniedPermissions(permissions) ActivityCompat.requestPermissions( this, needPermissions.toTypedArray(), REQUEST_CODE_PERMISSION ) } catch (e: Exception) { Log.e("BaseActivity", "获取权限失败 Exception = $e") } } } /** * 检测所有的权限是否都已授权 */ fun checkPermissions(permissions: Array<String>): Boolean { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { return true } for (permission in permissions) { if (ContextCompat.checkSelfPermission( this, permission ) != PackageManager.PERMISSION_GRANTED ) { return false } } return true } /** * 获取权限集中需要申请权限的列表 */ fun getDeniedPermissions(permissions: Array<String>): List<String> { val needRequestPermissionList: MutableList<
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。