非常好用的国产手机5.0、6.0权限适配框架

阅读: 评论:0

非常好用的国产手机5.0、6.0权限适配框架

非常好用的国产手机5.0、6.0权限适配框架

你安装app提示一系列申请权限弹窗是什么感受?并且不同意就不能使用app,是不是太不友好了?如果能在使用时去请求权限是不是很实用?

还在为 ActivityCompat.shouldShowRequestPermissionRationale(Activity, String) 无法弹出权限申请对话框困惑么?

这里主要介绍permission4m的使用、注意事项:

step 1:引入依赖

    project 中的 adle:
        buildscript {
  // ...
}
allprojects {
  repositories {
    // 请添加如下一行
    maven { url '' }
  }

}

strp 2:app 中的 adle:
dependencies {
  compile 'com.github.jokermonn:permissions4m:2.1.2-lib'
  annotationProcessor 'com.github.jokermonn:permissions4m:2.1.2-processor'

}

 

step 3:调用

 

<(MainActivity.this)// 是否强制弹出权限申请对话框,建议为 true,默认为 true// .requestForce(true)// 是否支持 5.0 权限申请,默认为 false// .requestUnderM(false)// 权限.requestPermissions(Manifest.permission.READ_CONTACTS)// 权限码.requestCodes(READ_CONTACTS_CODE)// 权限请求结果.requestListener(new Wrapper.PermissionRequestListener() {@Overridepublic void permissionGranted(int code) {ToastUtil.show("读取通讯录权限成功 in activity with listener");}@Overridepublic void permissionDenied(int code) {ToastUtil.show("读取通讯录权失败 in activity with listener");}@Overridepublic void permissionRationale(int code) {ToastUtil.show("请打开读取通讯录权限 in activity with listener");}})// 二次请求时回调.requestCustomRationaleListener(new Wrapper.PermissionCustomRationaleListener() {@Overridepublic void permissionCustomRationale(int code) {new AlertDialog.Builder(getActivity()).setMessage("通讯录权限申请:n我们需要您开启通讯录权限(in fragment with annotation)").setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {(NormalFragment.this).requestOnRationale().requestPermissions(Manifest.permission.READ_PHONE_STATE).requestCodes(PHONE_STATE_CODE).request();}}).show();}})// 权限完全被禁时回调函数中返回 intent 类型(手机管家界面).requestPageType(Permissions4M.PageType.MANAGER_PAGE)// 权限完全被禁时回调函数中返回 intent 类型(系统设置界面)//.requestPageType(Permissions4M.PageType.ANDROID_SETTING_PAGE)// 权限完全被禁时回调,接口函数中的参数 Intent 是由上一行决定的.requestPage(new Wrapper.PermissionPageListener() {@Overridepublic void pageIntent(final Intent intent) {new AlertDialog.Builder(MainActivity.this).setMessage("读取通讯录权限申请:n我们需要您开启读取通讯录权限(in activity with listener)").setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {startActivity(intent);}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.cancel();}}).show();}}).request();

step 4:注意事项,必加

必加的二次权限申请回调
在 Activity 或 Fragment 中,需要手动添加 onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) 方法以支持权限申请回调,代码如下即可:

 

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[]grantResults) {RequestPermissionsResult(MainFragment.this, requestCode, grantResults);RequestPermissionsResult(requestCode, permissions, grantResults);
}

 

完成了;

 

具体请参考:

 

本文发布于:2024-02-01 17:25:33,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170678076138258.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23