Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]:权限设置maxSdkVersion后一律抛出异常 #280

Closed
gggcccwww opened this issue Apr 12, 2024 · 6 comments
Closed

[Bug]:权限设置maxSdkVersion后一律抛出异常 #280

gggcccwww opened this issue Apr 12, 2024 · 6 comments
Labels
bug Something isn't working

Comments

@gggcccwww
Copy link

框架版本【必填】

v18.63

问题描述【必填】

Uploading image.png…
此处传入值永远是Integer.MAX_VALUE,一旦设置android:maxSdkVersion 必定抛出异常

复现步骤【必填】

android 9手机上运行app,清单文件添加 后申请WRITE_EXTERNAL_STORAGE 后直接报出please delete the android:maxSdkVersion异常
image
此处方法传入的是Integer.MAX_VALUE 永远报错!

是否必现【必填】

项目 targetSdkVersion【必填】

33

出现问题的手机信息【必填】

android 9即可

出现问题的安卓版本【必填】

android 9即可

问题信息的来源渠道【必填】

自己遇到的

是部分机型还是所有机型都会出现【必答】

必现

框架最新的版本是否存在这个问题【必答】

框架文档是否提及了该问题【必答】

是否已经查阅框架文档但还未能解决的【必答】

issue 列表中是否有人曾提过类似的问题【必答】

是否已经搜索过了 issue 列表但还未能解决的【必答】

是否可以通过 Demo 来复现该问题【必答】

提供报错堆栈

java.lang.IllegalArgumentException: The AndroidManifest.xml file <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="28" /> does not meet the requirements, please delete the android:maxSdkVersion="28" attribute
        at com.hjq.permissions.PermissionChecker.checkManifestPermission(PermissionChecker.java:665)
        at com.hjq.permissions.PermissionChecker.checkManifestPermission(PermissionChecker.java:627)
        at com.hjq.permissions.PermissionChecker.checkManifestPermissions(PermissionChecker.java:542)
        at com.hjq.permissions.XXPermissions.request(XXPermissions.java:200)
        at

提供截图或视频

No response

提供解决方案

No response

@gggcccwww gggcccwww added the bug Something isn't working label Apr 12, 2024
@getActivity
Copy link
Owner

小伙子,你为什么要给权限加 maxSdkVersion 属性?

@gggcccwww
Copy link
Author

存储一张图片到相册28 以前需要WRITE_EXTERNAL_STORAGE权限才可以,28以后压根就不需文件权限 所以自然的 这个权限WRITE_EXTERNAL_STORAGE 我得加个maxSdkVersion 属性哇。。。。大佬哇,这个参数就是设置不同权限的上限版本的哇

@getActivity
Copy link
Owner

@gggcccwww 不加会有什么问题?

@lisonge
Copy link

lisonge commented Apr 25, 2024

仅供参考的 AI 回复

image

@getActivity
Copy link
Owner

存储一张图片到相册28 以前需要WRITE_EXTERNAL_STORAGE权限才可以,28以后压根就不需文件权限 所以自然的 这个权限WRITE_EXTERNAL_STORAGE 我得加个maxSdkVersion 属性哇。。。。大佬哇,这个参数就是设置不同权限的上限版本的哇

小伙子,我认真思考了一下,你讲得确实有道理,但是 API 28 还不一定不需要权限,得看你怎么读写外部存储上面的文件,如果你是通过 ContentValues 的方式,确实不需要权限,但是如果是通过 File 的方式,则仍然需要写入文件权限,框架其实无法得知外层用的是哪种。

@getActivity
Copy link
Owner

如果要解决你这个问题,其实有两个办法,你可以参考一下

  1. 在清单文件中静态注册权限的时候,不要带上 maxSdkVersion 属性,这样就不会触发框架的检测异常

  2. 在权限申请的时候,调用 .unchecked() 方法,表示不会进行任何权限检查,这样就不会触发框架的检测异常

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants