android运行时权限代码,Android 运行时权限处理封装在 BaseActivity 中,方便业务申请时只需要简单的 1,2 行代码即可成功处理权限申请...

把 Android 运行时权限处理封装在 BaseActivity 中,方便业务申请时只需要简单的 1,2 行代码即可成功处理权限申请

对外接口

1. 请求权限操作

/**

* 请求权限操作

* @param rationale 请求权限提示语

* @param permissionRequestCode 权限 requestCode

* @param perms 申请的权限列表

* @param callback 权限结果回调

*/

void performCodeWithPermission(@NonNull String rationale,

final int permissionRequestCode,

@NonNull String[] perms,

@NonNull PermissionCallback callback)

2. 跳转设置弹框

/**

* 跳转设置弹框 建议在权限被设置为不在询问时弹出 提示用户前往设置页面打开权限

* @param tips 提示信息

*/

void alertAppSetPermission(String tips)

/**

* 跳转设置弹框 建议在权限被设置为不在询问时弹出 提示用户前往设置页面打开权限

* @param tips 提示信息

* @param requestCode 页面返回时 onActivityResult 的 requestCode

*/

void alertAppSetPermission(String tips, int requestCode)

示例

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.btn_read_file:

doReadFilePermisssion();

break;

}

}

//动态权限申请

private void doReadFilePermisssion() {

String[] perms = {Manifest.permission.READ_EXTERNAL_STORAGE};

performCodeWithPermission(getString(R.string.permission_rc_storage), RC_STORAGE, perms,

new PermissionCallback() {

@Override

public void hasPermission() {

doReadFile();

}

@Override

public void noPermission(Boolean hasPermanentlyDenied) {

if(hasPermanentlyDenied) {

//只是提供跳转系统设置的提示 系统返回后不做检查处理

// alertAppSetPermission(getString(R.string.permission_storage_deny_again));

//如果需要跳转系统设置页后返回自动再次检查和执行业务

alertAppSetPermission(getString(R.string.permission_storage_deny_again), REQUEST_APPSET);

}

}

});

}

//开始读写文件业务

private void doReadFile() {

File file = new File(Environment.getExternalStorageDirectory() + "/com.tsy/a.zip");

// ...

Toast.makeText(getApplicationContext(), "成功执行读写文件业务", Toast.LENGTH_SHORT).show();

}

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if(requestCode == REQUEST_APPSET) { //如果需要跳转系统设置页后返回自动再次检查和执行业务 如果不需要则不需要重写 onActivityResult

doReadFilePermisssion();

}

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值