Skip to content

Commit 2704df3

Browse files
authored
Merge pull request #21 from nasduck/dev
Update readme and rm app_name in lib
2 parents 9cef03a + 6137029 commit 2704df3

File tree

3 files changed

+80
-31
lines changed

3 files changed

+80
-31
lines changed

README-CN.md

Lines changed: 80 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,87 +1,138 @@
11
![topic map](https://github.com/nasduck/RafikiPermissions/blob/dev/art/topic%20map.png?raw=true)
22

3-
[![API](https://img.shields.io/badge/RafikiPermissions-v1.1.2-brightgreen.svg?style=flat)](https://android-arsenal.com/api?level=14) 
3+
[![API](https://img.shields.io/badge/RafikiPermissions-v1.2.0-brightgreen.svg?style=flat)](https://android-arsenal.com/api?level=14) 
44
[![API](https://img.shields.io/badge/API-14%2B-brightgreen.svg?style=flat)](https://android-arsenal.com/api?level=14) 
55
[![API](https://img.shields.io/badge/License-Apche2.0-brightgreen.svg?style=flat)](https://github.com/nasduck/AfikiPermissions/blob/master/LICENSE)
66

7-
AfikiPermissions是为了简化Android危险权限动态申请操作,将权限申请判断和权限申请过程简化,将权限申请结果拆分成授予成功和授予失败两部分处理,使结果处理更富有逻辑性。
7+
RafikiPermissions 是为了简化 Android 危险权限动态申请操作,将权限申请判断和权限申请过程简化,将权限申请结果拆分成授予成功和授予失败两部分处理,使结果处理更富有逻辑性。组件名称 Rafiki 拉菲奇来源于狮子王里的狒狒长老,统管权限 :D
8+
9+
* [Google developer - Dangerous Permissions(英文需翻墙)](https://developer.android.com/guide/topics/permissions/overview#permission-groups)
10+
* [官方危险权限列表-中文](https://developer.android.google.cn/guide/topics/permissions/overview#permission-groups)
811

912
## 依赖
10-
步骤一:在项目的build.gradle中添加jitpack
11-
```
13+
步骤一:在项目的 `build.gradle` 中添加 `jitpack`
14+
15+
```gradle
1216
allprojects {
1317
repositories {
1418
...
1519
maven { url 'https://www.jitpack.io' }
1620
}
1721
}
1822
```
23+
1924
步骤二:添加依赖项
20-
```
25+
26+
```gradle
2127
dependencies {
22-
implementation 'com.github.nasduck:RafikiPermissions:1.1.2'
28+
implementation 'com.github.nasduck:RafikiPermissions:1.2.0'
2329
}
2430
```
2531

26-
## 使用方式
32+
## 基本使用
33+
2734
#### [详细使用参考文档](https://github.com/nasduck/RafikiPermissions/wiki/%E8%AF%A6%E7%BB%86%E4%BD%BF%E7%94%A8%E5%8F%82%E8%80%83%E6%96%87%E6%A1%A3)
28-
### 基本权限申请
29-
一个简单的例子,假设我们需要实现拍照的功能,这时候要动态获取相机的权限**Manifest.permission.CAMERA**
30-
#### 1、添加权限到AndroidManifest.xml
31-
在AndroidManifest.xml中加入相应的权限代码:
32-
```
35+
36+
假设我们需要动态获取相机的权限 `Manifest.permission.CAMERA`
37+
38+
#### 1、添加权限
39+
40+
`AndroidManifest.xml` 中加入相应的权限:
41+
42+
```xml
3343
<uses-permission android:name="android.permission.CAMERA" />
3444
```
3545

36-
#### 2、在BaseActivity中进行返回结果的初始化
37-
```
46+
#### 2、在基类 Activity 中统一进行返回结果的处理
47+
48+
```java
3849
public class BaseActivity extends AppCompatActivity {
3950
@Override
4051
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
4152
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
53+
4254
// 在onRequestPermissionsResult中加入这行代码,传入对应的值
4355
RafikiPermissions.getInstance(this).onResult(requestCode, permissions, grantResults);
4456
}
4557
}
4658
```
4759

48-
#### 3、在继承了BaseActivity的Activity中使用
49-
```
60+
#### 3、在继承了基类的 Activity 中请求权限
61+
62+
```java
5063
// 对于权限是否授予进行判断,已授予返回true,未授予进行权限授予操作
5164
if (RafikiPermissions.getInstance(this)
52-
.setResultStrategy(new PermissionResultCustomStrategy(this)) // 设置自定义的权限授予结果处理策略
53-
.requestCamera()) { // 请求相机权限
54-
// 如果已经授予权限后,需要作的操作逻辑
65+
.setResultStrategy(new PermissionResultCustomStrategy(this)) // 设置自定义的权限授予结果处理策略, 也有其他2种预定义策略
66+
.requestCamera()) {
67+
// 已经授予权限的逻辑操作
68+
...
5569
}
5670
```
5771

58-
#### 4、在回调中进行权限授予后的逻辑处理
59-
```
72+
#### 4、实现授权结果的回调
73+
74+
实现接口 `OnPermissionResultListener`:
75+
76+
```java
6077
@Override
6178
public void onPermissionsResultGrant(int requestCode) {
6279
switch (requestCode) {
63-
// 根据权限对应的requestCode进行权限操作的匹配,授予失败同理
6480
case RafikiResultCode.RESULT_CODE_CAMERA:
65-
// 权限授予成功后的操作
81+
// 权限授予成功
6682
}
6783
}
6884

6985
@Override
7086
public void onPermissionsResultDenied(int requestCode) {
7187
switch (requestCode) {
7288
case RafikiResultCode.RESULT_CODE_CAMERA:
73-
// 权限授予失败后的操作
89+
// 权限授予失败后
7490
}
7591
}
7692
```
7793

78-
### 权限申请策略
79-
之前的例子中已经使用了PermissionResultCustomStrategy,是留给用户自己去实现的权限授予操作后的逻辑,在本库中已经封装了几种策略。
80-
- PermissionResultNothingStrategy——授予权限后不做任何操作
81-
- PermissionResultGuideStrategy——授予权限失败后引导用户去设置中作权限授予
94+
## 权限处理策略
95+
96+
提供三种权限处理策略
97+
98+
1. **PermissionResultNothingStrategy** 默认策略. 无论是否授予策略, 不做任何操作
99+
2. **PermissionResultGuideStrategy** 用户拒绝授予权限后, 弹出弹窗引导用户去应用设置中作权限授予
100+
3. **PermissionResultCustomStrategy** 自定义权限授予策略. 实现 `OnPermissionResultListener` 接口自定义授权回调处理逻辑
101+
102+
## 请求权限不同的方式
103+
104+
##### 请求单个权限
105+
106+
封装了各个权限对应的 .requestXX() 方法. 比如上面例子中, 请求照相权限, 直接调用 `requestCamera()`
107+
108+
##### 请求多个权限
82109

83-
## 联系我们
110+
动态请求多个权限时,根据需要添加相应的权限,最后使用 `request()` 方法请求权限,参数传入自定义的 requestCode(不传则默认为`RafikiResultCode.RAFIKI_PERMISSION_RESULT_CODE`), 用以在回调中识别这次请求:
84111

112+
```java
113+
if (RafikiPermissions.getInstance(this)
114+
.addReadExternalStorage()
115+
.addWriteExternalStorage()
116+
.setResultStrategy(new PermissionResultCustomStrategy(this)) // 设置自定义的权限授予结果处理策略
117+
.request(RESULT_CODE)) {
118+
// 已经授予权限的逻辑操作
119+
}
120+
```
121+
122+
或者使用 `addPermissions()` 设置一组权限
123+
124+
```java
125+
List<String> permissions = new ArrayList();
126+
permissions.add(Manifest.permission.READ_EXTERNAL_STORAGE);
127+
permissions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
128+
129+
if (RafikiPermissions.getInstance(this)
130+
.addPermissions(permissions)
131+
.setResultStrategy(new PermissionResultCustomStrategy(this))
132+
.request(RESULT_CODE)) {
133+
// 已经授予权限的逻辑操作
134+
}
135+
```
85136

86137
## LICENSE
87138
> Copyright

lib/src/main/res/values-zh/strings.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<resources>
3-
<string name="app_name">afiki Permissions</string>
43

54
<string name="cancel">取消</string>
65
<string name="grant">去授予</string>

lib/src/main/res/values/strings.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
<resources>
2-
<string name="app_name">afiki Permissions</string>
32

43
<string name="cancel">cancel</string>
54
<string name="grant">grant</string>

0 commit comments

Comments
 (0)