PermissionAccess的使用

前言

众所周知,Android 6.0 之后,引入了权限请求机制,鉴于目前 Android 8.0 已经发布了,应该没有开发者不清楚这个机制的使用了,此处就不过多解释。但是由于权限请求的过程比较繁琐,而且需要在每一处使用权限时都需要考虑权限的获取,很多第三方库的出现便是为了解决这一问题。这些第三方库的封装各有千秋,但我都不是很喜欢,主要有两点:

1. 使用起来比较麻烦,并没有达到十分便利的程度
2. 库的大小不够精简,会增加应用的体积

所以本着折腾自己的原则,我自己动手封装了一个库。

使用

在 module 里的 build.gradle 里添加如下代码:

1
2
3
dependencies {
compile 'me.reed.permissionaccess:permissionaccess:1.0.0'
}

之后在需要进行权限请求的地方添加如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
PermissionAccess.getInstance().requestPermission(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.CAMERA, Manifest.permission.ACCESS_FINE_LOCATION)
.setRationale("测试")//权限使用的解释
.setCallback(new PermissionAccess.PermissionCallback() {
@Override
public void onPermissionError(List<String> permissions) {
for (int i = 0; i < permissions.size(); i++) {
Log.i("未通过的权限", permissions.get(i));
}
}
@Override
public void onPermissionSuccess() {
Log.i("权限结果", "通过");
}
})//权限请求回调
.start(MainActivity.this);//开始请求

说明

我设计的这个库采用的开启一个新的空 Activity,在这个空的 Activity 进行权限请求。如需了解代码细节,可以点击查看源码.