1、添加依赖:
//EasyPermission
implementation 'pub.devrel:easypermissions:2.0.0'
2、权限拒绝后,弹出的提示设置的弹框内容,需要自己修改:
if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) {new AppSettingsDialog.Builder(this).setTitle("权限提示").setRationale("必须打开权限才可以使用!").build().show();
}
3、activity使用EasyPermission:
/*** Desc: 使用EasyPermission来实现* FileName: TestEasyPermissionActivity* Create by: yingbin.bai* Date: 2019/11/21* Time: 9:02* Email: baiyingbin5@163.com*/
public class TestEasyPermissionActivity extends AppCompatActivity implements View.OnClickListener,EasyPermissions.PermissionCallbacks {private TextView callTel;//拨号private TextView openCamera;//打开相机@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_permission_google_api);ViewBinder.ActivityBindViews(this);callTel.setOnClickListener(this);openCamera.setOnClickListener(this);}@Overridepublic void onClick(View view) {switch (view.getId()) {case R.id.callTel://拨号initPermission();break;case R.id.openCamera://打开相机initPermission();break;}}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);switch (requestCode) {//当从软件设置界面,返回当前程序时候case AppSettingsDialog.DEFAULT_SETTINGS_REQ_CODE:Log.e("EasyPermission","设置未打开授权");//执行Toast显示或者其他逻辑处理操作break;}}/*** 初始化需要动态请求的权限* 打电话、打开相机*/private void initPermission(){String[] permissions = {Manifest.permission.CALL_PHONE,Manifest.permission.CAMERA};boolean hasPermissions = checkPermission(TestEasyPermissionActivity.this, permissions);if (hasPermissions) {//拥有权限,执行其他操作}else {//没有权限,去请求权限requestPermission(TestEasyPermissionActivity.this,"请求拨号和摄像头权限",1200,permissions);}}@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {//Forward results to EasyPermissionssuper.onRequestPermissionsResult(requestCode, permissions, grantResults);EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);}@Overridepublic void onPermissionsGranted(int requestCode, @NonNull List<String> perms) {Log.e("EasyPermission","用户授权成功");}@Overridepublic void onPermissionsDenied(int requestCode, @NonNull List<String> perms) {/*** 若是在权限弹窗中,用户勾选了'NEVER ASK AGAIN.'或者'不在提示',且拒绝权限。* 这时候,需要跳转到设置界面去,让用户手动开启。*/if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) {new AppSettingsDialog.Builder(this).setTitle("权限提示").setRationale("必须打开权限才可以使用!").build().show();}}/*** 检测权限* @param context   Activity* return true:已经获取权限* return false: 未获取权限,主动请求权限*/public static boolean checkPermission(Activity context, String[] perms) {return EasyPermissions.hasPermissions(context, perms);}/*** 请求权限* @param context   Activity*/public static void requestPermission(Activity context,String tip,int requestCode,String[] perms) {EasyPermissions.requestPermissions(context, tip,requestCode,perms);}}

android Easypermission权限管理相关推荐

  1. android media_rw sdcard_rw,大约Android 了解权限管理

    如Android应用程序开发人员.为android权限机制一直觉得很奇怪.为什么要这个东西权限?为什么要AndroidManifest里面写的uses-permission 这样的事情?我一直搞不清楚 ...

  2. Android动态权限管理模型(4.3-6.0)

    Google从4.3开始就试图引入AppOpsManager动态权限管理模型,但是,由于感觉技术不太成熟,在Release版本中,这个功能都是被隐藏掉的,所以官方Rom一直没有动态权限管理机制.直到A ...

  3. android 获取权限管理,Android常用权限获取和设置

    Android常用权限获取和设置 1 活动管理器 权限 代码 ActivityManager activityManager = (ActivityManager) getSystemService( ...

  4. Android原生权限管理:AppOps

    --------------------- 从Android M开始,Google就正式推出了官方的权限管理机制Android Runtime Permission. AppOps终究没有走到台面^^ ...

  5. android应用权限被默认关闭了,Android 应用权限管理默认开关的修改方法

    修改系统属性:persist.sys.strict_op_enable 开启应用权限管理:true 关闭应用权限管理:false 说明:因为对源码不熟,此部分控制很简单,却走了不少弯路,记之,为大家节 ...

  6. android关闭权限管理,Android6.0权限管理以及使用权限该注意的地方

    Android 6.0 Marshmallow首次增加了执行时权限管理,这对用户来说,能够更好的了解.控 制 app 涉及到的权限.然而对开发人员来说却是一件比較蛋疼的事情.须要兼容适配,并保证程序功 ...

  7. android浮标权限管理,Android辅助权限与悬浮窗

    Android辅助权限与悬浮窗在执行自动化服务的流程中,我们其实并不希望被用户的操作中断流程,所以有什么方法在用户点击自动化操作的过程中,避免用户再次操作呢?那就是开启一个全局透明的悬浮窗,进行屏蔽触 ...

  8. Android pms权限管理,Android权限机制

    为什么有权限机制 我们知道 Android 应用程序是沙箱隔离的,每个应用都有一个只有自己具有读写权限的专用数据目录.但是如果应用要访问别人的组件或者一些设备上全局可访问的资源,这时候权限机制就能系统 ...

  9. Android应用权限管理总结

    访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限 获取错略位置 android.permiss ...

最新文章

  1. 腾讯云携手SENSORO,为城市安全保驾护航
  2. 地方弱势运营商如何发展宽带业务?
  3. EAS中的管理单元、组织单元理解
  4. 42.存储器管理应具有的功能?
  5. gcc/g++编译器的优化
  6. 01-08-02【Nhibernate (版本3.3.1.4000) 出入江湖】二级缓存:NHibernate自带的HashtableProvider...
  7. Flink 1.9 实战:使用 SQL 读取 Kafka 并写入 MySQL
  8. Python基础教程笔记——条件,循环和其他语句
  9. hashmultimap java_【Java 学习笔记】 HashMultimap(guava)
  10. 【Java】使用MapReduce程序统计PV数量
  11. SAP License:标准价格修改
  12. Java并发(三)——线程池
  13. 手把手教程 Sublime Text 删除重复行
  14. linux locate
  15. 论文翻译——Skin Lesion Synthesis with Generative Adversarial Networks
  16. mysql 随机函数
  17. c# ppt 转 html,C# 实现PPT 每一页转成图片
  18. 爬虫入门经典(一) | 一文教你用Spider制作简易的翻译工具
  19. 测绘人真实故事 | 放弃上万月薪从私企跳回国企
  20. 企业微信社群运营必建的4个内容体系

热门文章

  1. 鸟哥的Linux私房菜学习心得-基础操作
  2. C# 路径 目录 文件操作办法
  3. dz论坛在线咨询使用不了,解决办法
  4. 验房师去哪找靠谱,验房项目以及验房整改建议,精装房验房项目、毛坯房验房项目
  5. 【ACM- OJ】《Oulipo》C++
  6. 6.2 新浪财经——资产负债表获取(打印js渲染后的网页表格)
  7. PHP artisan命令
  8. mysql储存引擎,数据类型,增删改查
  9. 一小球从100米高度落下,每次落地后反弹原来高度的一半,问第十次落地经过的路径多长?第十次落地后反弹多高?
  10. 财贸计算机专业,技能月|这所学校的计算机专业部有这些玩法