当前位置: 首页 > news >正文

安卓简易权限调用

EasyPermission

简易权限调用

功能&特性

  • 1、自动判断权限所在的请求周期,自动回调
    • 从未请求,调用ActivityCompat.requestPermissions。
    • 仅被拒绝,请求权限任意次,但每次都拒绝,调用ActivityCompat.requestPermissions。
    • 已授权,无操作。
    • 永久拒绝,调用相关厂商的接口去该应用的权限配置页。
  • 2、根据所处周期自动弹出提示窗口,自动回调
    • 在用户首次请求时,不弹窗
    • 用户首次请求后拒绝又请求,弹窗
    • 永久拒绝后又请求,弹窗
  • 3、支持自定义权限请求周期,自动回调
  • 4、支持强制请求权限,直到用户点击弹窗上的退出按钮,自动回调
  • 5、支持请求一些特性,自动回调
    • 后台运行
    • 电池优化
  • 6、不需要在Activity里配置回调方法
  • 7、原理是动态注册和监听Activity生命周期

导入依赖

	//https://github.com/isong0623/EasyPermissionimplementation 'com.github.isong0623:EasyPermission:1.0'

初始化

在Application的onCreate方法中调用如下函数

import android.Manifest;private void initEasyPermission(){PermissionContext.set(this);//以下内容用于 展示当用户拒绝而又请求时 或 用户永久拒绝时//弹出的提示元信息//配置权限名称PermissionConfigure.setPermissionName(Manifest.permission.CAMERA,"相机");PermissionConfigure.setPermissionMessage(Manifest.permission.CAMERA, "为了拍照");
//配置权限提示信息PermissionConfigure.setPermissionName(Manifest.permission.WRITE_EXTERNAL_STORAGE,"读取文件");PermissionConfigure.setPermissionMessage(Manifest.permission.WRITE_EXTERNAL_STORAGE, "为了好玩");}

请求各种权限

普通执行一次

EasyPermission.permissions(Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE).setAccuratelyCallbackEnable(true).onGranted(new PermissionAction<List<String>>() {@Overridepublic void onAction(List<String> data) {Toast.makeText(MainActivity.this, "请求成功!", Toast.LENGTH_SHORT).show();}}).onDenied(new PermissionAction<List<String>>() {@Overridepublic void onAction(List<String> data) {Toast.makeText(MainActivity.this, "请求失败!", Toast.LENGTH_SHORT).show();}}).onDeniedOnce(new PermissionAction<List<String>>() {@Overridepublic void onAction(List<String> data) {Toast.makeText(MainActivity.this, "请求失败,一次!", Toast.LENGTH_SHORT).show();}}).onDeniedAlways(new PermissionAction<List<String>>() {@Overridepublic void onAction(List<String> data) {Toast.makeText(MainActivity.this, "请求失败,总是!", Toast.LENGTH_SHORT).show();}}).requestOnce();

执行到某个周期

以下代码将会从[任意状态]开始到用户永久拒绝将会执行到跳转[设置页返回]结束

EasyPermission.permissions(Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE).onGranted(new PermissionAction<List<String>>() {@Overridepublic void onAction(List<String> data) {Toast.makeText(MainActivity.this, "请求成功!", Toast.LENGTH_SHORT).show();}}).onDenied(new PermissionAction<List<String>>() {@Overridepublic void onAction(List<String> data) {Toast.makeText(MainActivity.this, "请求失败!", Toast.LENGTH_SHORT).show();}}).requestFully();

强制执行,直到用户退出程序

  EasyPermission.permissions(Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE).onGranted(new PermissionAction<List<String>>() {@Overridepublic void onAction(List<String> data) {Toast.makeText(MainActivity.this, "请求成功!", Toast.LENGTH_SHORT).show();}}).requestForce();

请求某些特性

注意:暂不支持自启动,因为没有办法判断程序是否能够自启动

请求某些特性一次

EasyFeature.features(Feature.Background, Feature.Battery).onDenied(new PermissionAction<List<Feature>>() {@Overridepublic void onAction(List<Feature> data) {Toast.makeText(MainActivity.this, "请求失败!", Toast.LENGTH_SHORT).show();}}).onGranted(new PermissionAction<List<Feature>>() {@Overridepublic void onAction(List<Feature> data) {Toast.makeText(MainActivity.this, "请求成功!", Toast.LENGTH_SHORT).show();}}).request();

强制请求某些特性,直到用户退出程序

     EasyFeature.features(Feature.Background, Feature.Battery).onGranted(new PermissionAction<List<Feature>>() {@Overridepublic void onAction(List<Feature> data) {Toast.makeText(MainActivity.this, "请求成功!", Toast.LENGTH_SHORT).show();}}).requestForce();

http://www.mrgr.cn/news/36343.html

相关文章:

  • 文献阅读——基于拉格朗日乘子的电力系统安全域边界通用搜索方法
  • 制作一个能对话能跳舞的otto机器人
  • HashMap和Hashtabe的区别
  • 编程遇到问题了?一个命令让 AI 解决你的困惑!
  • 在 VS Code 中配置 C/C++ 开发环境(详细指南)
  • 前缀和(2)_【模板】二维前缀和_模板
  • AXI4-Stream
  • DNS协议解析
  • 关联式容器——map与set
  • 单链表的实现(C语言)
  • ③无需编程 独立通道 Modbus主站EtherNet/IP转ModbusRTU/ASCII工业EIP网关串口服务器
  • 深入探秘 WorkManager:Android 异步任务管理的强大工具
  • Solidity智能合约中的异常处理(error、require 和 assert)
  • 回归预测 | Matlab基于SO-SVR蛇群算法优化支持向量机的数据多输入单输出回归预测
  • vue项目报错: At least one is required in a single file component.的主要原因及解决办法
  • linux服务器安装原生的php环境
  • Adaptive Object Detection with Dual Multi-Label Prediction
  • JS面试真题 part6
  • Structure-Aware Transformer for Graph Representation Learning
  • 量化交易四大邪术之三:春去花还在