android动态权限封装,Android 动态权限申请的封装

此模块基于AndPermission进行二次封装

为AndPermission加入依赖

implementation 'com.yanzhenjie:permission:2.0.3' //添加依赖

1

封装类CheckPermission

public class CheckPermission {

private  Context context;

private static CheckPermission checkPermission;

private static final String PACKAGE_HEADER = "package:";

public  CheckPermission(Context context) {

this.context = context;

}

郑州不孕不育医院那家好:http://jbk.39.net/yiyuanfengcai/tsyl_zztjyy/1449/

/**

* 获取权限

*

* @param listener

* @param permission

*/

@SuppressLint("WrongConstant")

public void requestPermission(String [] permission,final PermissionLinstener listener) {

AndPermission.with(context)

.runtime()

.permission(permission)

//                    .rationale(context)//添加拒绝权限回调

.onGranted(new Action>() {

@Override

public void onAction(List data) {

// data.get(0);

Log.d("permission", data.get(0));

listener.onSuccess(context,data);

}

})

.onDenied(new Action>() {

@Override

public void onAction(List data) {

/**

* 当用户没有允许该权限时,回调该方法

*/

listener.onFailed(context,data);

/**

* 判断用户是否点击了禁止后不再询问,AndPermission.hasAlwaysDeniedPermission(MainActivity.this, data)

* 如要引导用户跳转至应该权限设置页面,可用intent

*/

if (AndPermission.hasAlwaysDeniedPermission(context, data)) {

//true,弹窗再次向用户索取权限

listener.onNotApply(context,data);

}

}

}).start();

}

/**

* 引导用户到系统设置页面

*/

public void GuidePermission(){

Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);

intent.setData(Uri.parse(PACKAGE_HEADER + context.getPackageName()));

context.startActivity(intent);

}

郑州好的不孕不育医院有哪些:http://www.xbzztj.com/

public interface PermissionLinstener {

void onSuccess(Context context,List data);

void onFailed(Context context,List data);

void onNotApply(Context context,List data);

}

}

使用案例

final String [] strings = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE};

new CheckPermission(context).requestPermission(strings, new CheckPermission.PermissionLinstener() {

@Override

public void onSuccess(Context context, List data) {

Toast.makeText(context, "申请成功", Toast.LENGTH_SHORT).show();

}

@Override

public void onFailed(Context context, List data) {

Toast.makeText(context, "申请失败", Toast.LENGTH_SHORT).show();

}

/**

*  可在此调用,GuidePermission();引导用户前往系统设置页面获取权限

* @param context

* @param data

*/

@Override

public void onNotApply(final Context context, List data) {

Toast.makeText(context, "用户点击了不再提示", Toast.LENGTH_SHORT).show();

}

});

不要忘了在清单中,加入注册权限

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值