Android动态权限框架-AndroidUtilCode使用方法

苏运良
2023-12-01

AndroidUtilCode所提供的动态权限框架是我见过的最为省事的框架。没有了宿主页的限制,可以在任何地方进行动态申请。极大地解决了为H5封装接口或者封装能力类时的尴尬境地。其用法极其简单,分为如下三步。

添加依赖

dependencies {
    implementation 'com.blankj:utilcode:1.12.5'
}

初始化

建议在APP启动之初就初始化该库。它不光提供了动态权限框架,还提供了很多实用的工具。比如获取当前最顶层Activity(ActivityUtils.getTopActivity())。

Utils.init(getApplication());

请求权限

public void callPhoneNumberWithPermissionCheck(String phoneNumber) {
	if (PermissionUtils.isGranted(Manifest.permission.CALL_PHONE)) {
		callPhoneNumber(phoneNumber);
	} else {
		PermissionUtils.permission(Manifest.permission.CALL_PHONE).callback(new PermissionUtils.SimpleCallback() {
			@Override
			public void onGranted() {
				// do something about phone call
			}

			@Override
			public void onDenied() {
				Toast.makeText(MainActivity.this, "电话权限被拒绝", Toast.LENGTH_SHORT).show();
				PermissionUtils.openAppSettings();
			}
		}).request();
	}
}

接口说明:

接口名作用
isGranted判断是否拥有某权限
permission根据所需权限,构造一个PermissionUtil实例
callback填充回调,支持简单回调和完整回调,一般应用场景咱们使用简单回调即可,完整回调会返回一个权限列表,说明那些允许了那些失败了,场景应用不多
request发起请求
openAppSettings打开系统设置,未提供设置结束后回调能力

可以看出,AndroidUtilCode这个包提供的动态请求框架十分傻瓜,依赖后,初始化库,然后就随用随写即可,毫无滞碍,这个轮子造的真乃吾辈福音!

参考资料

AndroidUtilCode

 类似资料: