Skip to content

Commit 9aa3e1c

Browse files
committed
修正 BLUETOOTH_SCAN 权限对 targetSdk 版本检查
修正 READ_MEDIA_VIDEO、WRITE_EXTERNAL_STORAGE 权限不能同时申请的问题
1 parent 2e54b24 commit 9aa3e1c

File tree

6 files changed

+17
-14
lines changed

6 files changed

+17
-14
lines changed

README-en.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
* project address: [Github](https://github.com/getActivity/XXPermissions)
88

9-
* [Click here to download demo apk directly](https://github.com/getActivity/XXPermissions/releases/download/18.62/XXPermissions.apk)
9+
* [Click here to download demo apk directly](https://github.com/getActivity/XXPermissions/releases/download/18.63/XXPermissions.apk)
1010

1111
![](picture/en/demo_request_permission_activity.jpg) ![](picture/en/demo_request_single_permission.jpg) ![](picture/en/demo_request_group_permission.jpg)
1212

@@ -55,7 +55,7 @@ android {
5555
5656
dependencies {
5757
// Permission request framework:https://github.com/getActivity/XXPermissions
58-
implementation 'com.github.getActivity:XXPermissions:18.62'
58+
implementation 'com.github.getActivity:XXPermissions:18.63'
5959
}
6060
```
6161

@@ -217,7 +217,7 @@ XXPermissions.setInterceptor(new OnPermissionInterceptor() {});
217217

218218
| Adaptation details | [XXPermissions](https://github.com/getActivity/XXPermissions) | [AndPermission](https://github.com/yanzhenjie/AndPermission) | [PermissionX](https://github.com/guolindev/PermissionX) | [AndroidUtilCode-PermissionUtils](https://github.com/Blankj/AndroidUtilCode) | [PermissionsDispatcher](https://github.com/permissions-dispatcher/PermissionsDispatcher) | [RxPermissions](https://github.com/tbruyelle/RxPermissions) | [EasyPermissions](https://github.com/googlesamples/easypermissions) |
219219
|:-------------------------------------------------------------:| :----------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------: |
220-
| Corresponding version | 18.62 | 2.0.3 | 1.7.1 | 1.31.0 | 4.9.2 | 0.12 | 3.0.0 |
220+
| Corresponding version | 18.63 | 2.0.3 | 1.7.1 | 1.31.0 | 4.9.2 | 0.12 | 3.0.0 |
221221
| Number of issues | [![](https://img.shields.io/github/issues/getActivity/XXPermissions.svg)](https://github.com/getActivity/XXPermissions/issues) | [![](https://img.shields.io/github/issues/yanzhenjie/AndPermission.svg)](https://github.com/yanzhenjie/AndPermission/issues) | [![](https://img.shields.io/github/issues/guolindev/PermissionX.svg)](https://github.com/guolindev/PermissionX/issues) | [![](https://img.shields.io/github/issues/Blankj/AndroidUtilCode.svg)](https://github.com/Blankj/AndroidUtilCode/issues) | [![](https://img.shields.io/github/issues/permissions-dispatcher/PermissionsDispatcher.svg)](https://github.com/permissions-dispatcher/PermissionsDispatcher/issues) | [![](https://img.shields.io/github/issues/tbruyelle/RxPermissions.svg)](https://github.com/tbruyelle/RxPermissions/issues) | [![](https://img.shields.io/github/issues/googlesamples/easypermissions.svg)](https://github.com/googlesamples/easypermissions/issues) |
222222
| Framework volume | 85 KB | 127 KB | 97 KB | 500 KB | 99 KB | 28 KB | 48 KB |
223223
| Framework Maintenance Status | **In maintenance** | stop maintenance | **In maintenance** | stop maintenance | stop maintenance | stop maintenance | stop maintenance |

README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
* 博文地址:[一句代码搞定权限请求,从未如此简单](https://www.jianshu.com/p/c69ff8a445ed)
1010

11-
* 可以扫码下载 Demo 进行演示或者测试,如果扫码下载不了的,[点击此处可直接下载](https://github.com/getActivity/XXPermissions/releases/download/18.62/XXPermissions.apk)
11+
* 可以扫码下载 Demo 进行演示或者测试,如果扫码下载不了的,[点击此处可直接下载](https://github.com/getActivity/XXPermissions/releases/download/18.63/XXPermissions.apk)
1212

1313
![](picture/zh/download_demo_apk_qr_code.png)
1414

@@ -61,7 +61,7 @@ android {
6161
6262
dependencies {
6363
// 权限请求框架:https://github.com/getActivity/XXPermissions
64-
implementation 'com.github.getActivity:XXPermissions:18.62'
64+
implementation 'com.github.getActivity:XXPermissions:18.63'
6565
}
6666
```
6767

@@ -223,7 +223,7 @@ XXPermissions.setInterceptor(new OnPermissionInterceptor() {});
223223

224224
| 适配细节 | [XXPermissions](https://github.com/getActivity/XXPermissions) | [AndPermission](https://github.com/yanzhenjie/AndPermission) | [PermissionX](https://github.com/guolindev/PermissionX) | [AndroidUtilCode-PermissionUtils](https://github.com/Blankj/AndroidUtilCode) | [PermissionsDispatcher](https://github.com/permissions-dispatcher/PermissionsDispatcher) | [RxPermissions](https://github.com/tbruyelle/RxPermissions) | [EasyPermissions](https://github.com/googlesamples/easypermissions) |
225225
| :--------: | :------------: | :------------: | :------------: | :------------: | :------------: | :------------: | :------------: |
226-
| 对应版本 | 18.62 | 2.0.3 | 1.7.1 | 1.31.0 | 4.9.2 | 0.12 | 3.0.0 |
226+
| 对应版本 | 18.63 | 2.0.3 | 1.7.1 | 1.31.0 | 4.9.2 | 0.12 | 3.0.0 |
227227
| issues 数 | [![](https://img.shields.io/github/issues/getActivity/XXPermissions.svg)](https://github.com/getActivity/XXPermissions/issues) | [![](https://img.shields.io/github/issues/yanzhenjie/AndPermission.svg)](https://github.com/yanzhenjie/AndPermission/issues) | [![](https://img.shields.io/github/issues/guolindev/PermissionX.svg)](https://github.com/guolindev/PermissionX/issues) | [![](https://img.shields.io/github/issues/Blankj/AndroidUtilCode.svg)](https://github.com/Blankj/AndroidUtilCode/issues) | [![](https://img.shields.io/github/issues/permissions-dispatcher/PermissionsDispatcher.svg)](https://github.com/permissions-dispatcher/PermissionsDispatcher/issues) | [![](https://img.shields.io/github/issues/tbruyelle/RxPermissions.svg)](https://github.com/tbruyelle/RxPermissions/issues) | [![](https://img.shields.io/github/issues/googlesamples/easypermissions.svg)](https://github.com/googlesamples/easypermissions/issues) |
228228
| 框架体积 | 85 KB | 127 KB | 97 KB | 500 KB | 99 KB | 28 KB | 48 KB |
229229
| 框架维护状态 |**维护中**| 停止维护 | 停止维护 | 停止维护 | 停止维护 | 停止维护 | 停止维护 |

app/build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ android {
77
applicationId "com.hjq.permissions.demo"
88
minSdkVersion 16
99
targetSdkVersion 34
10-
versionCode 1862
11-
versionName "18.62"
10+
versionCode 1863
11+
versionName "18.63"
1212
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
1313
}
1414

app/src/main/res/values-zh/strings_permission.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
<string name="common_permission_contacts">通讯录权限</string>
2828
<string name="common_permission_location">定位权限</string>
2929
<string name="common_permission_location_background">后台定位权限</string>
30-
<string name="common_permission_nearby_devices">附近的设备权限</string>
30+
<string name="common_permission_nearby_devices">附近设备权限</string>
3131
<string name="common_permission_microphone">麦克风权限</string>
3232
<string name="common_permission_phone">电话权限</string>
3333
<string name="common_permission_call_logs">通话记录权限</string>

library/build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ android {
55

66
defaultConfig {
77
minSdkVersion 14
8-
versionCode 1862
9-
versionName "18.62"
8+
versionCode 1863
9+
versionName "18.63"
1010
}
1111

1212
// 使用 JDK 1.8

library/src/main/java/com/hjq/permissions/PermissionChecker.java

+6-3
Original file line numberDiff line numberDiff line change
@@ -179,9 +179,8 @@ static void checkStoragePermission(@NonNull Context context, @NonNull List<Strin
179179
PermissionUtils.containsPermission(requestPermissions, Permission.READ_MEDIA_VIDEO) ||
180180
PermissionUtils.containsPermission(requestPermissions, Permission.READ_MEDIA_AUDIO)) {
181181

182-
if (PermissionUtils.containsPermission(requestPermissions, Permission.READ_EXTERNAL_STORAGE) ||
183-
PermissionUtils.containsPermission(requestPermissions, Permission.WRITE_EXTERNAL_STORAGE)) {
184-
// 检测是否有旧版的存储权限,有的话直接抛出异常,请不要自己动态申请这两个权限
182+
if (PermissionUtils.containsPermission(requestPermissions, Permission.READ_EXTERNAL_STORAGE)) {
183+
// 检测是否有旧版的存储权限,有的话直接抛出异常,请不要自己动态申请这个权限
185184
// 框架会在 Android 13 以下的版本上自动添加并申请这两个权限
186185
throw new IllegalArgumentException("If you have applied for media permissions, " +
187186
"do not apply for the READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE permissions");
@@ -485,6 +484,10 @@ static void checkTargetSdkVersion(@NonNull Context context, @NonNull List<String
485484
// READ_MEDIA_VISUAL_USER_SELECTED 这个权限比较特殊,不需要调高 targetSdk 的版本才能申请,但是需要和 READ_MEDIA_IMAGES 和 READ_MEDIA_VIDEO 组合使用
486485
// 这个权限不能单独申请,只能和 READ_MEDIA_IMAGES、READ_MEDIA_VIDEO 一起申请,否则会有问题,所以这个权限的 targetSdk 最低要求为 33 及以上
487486
targetSdkMinVersion = AndroidVersion.ANDROID_13;
487+
} else if (PermissionUtils.equalsPermission(permission, Permission.BLUETOOTH_SCAN)) {
488+
// 部分厂商修改了蓝牙权限机制,在 targetSdk 不满足条件的情况下(小于 31),仍需要让应用申请这个权限
489+
// issue 地址:https://github.com/getActivity/XXPermissions/issues/123
490+
targetSdkMinVersion = AndroidVersion.ANDROID_6;
488491
} else {
489492
targetSdkMinVersion = Permission.getPermissionFromAndroidVersion(permission);
490493
}

0 commit comments

Comments
 (0)