LuckSiege / PictureSelector

Picture Selector Library for Android or 图片选择器
Apache License 2.0
13.3k stars 3.01k forks source link

Android10到Android12选择图片不应该再请求WRITE_EXTERNAL_STORAGE权限 #2812

Open liyuhaolol opened 10 months ago

liyuhaolol commented 10 months ago

/selector/src/main/java/com/luck/picture/lib/permissions/PermissionConfig.java我认为需要修改,已经提交了PR WRITE_EXTERNAL_STORAGE从Android10开始已经被废弃,选图片跟这个权限完全没有关系,所以我认为这个文件里需要添加对大于AndroidQ的设备,只申请读READ_EXTERNAL_STORAGE。低于Android10的手机才需要写权限。 如果有人没写WRITE_EXTERNAL_STORAGE或者如下代码

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
        android:maxSdkVersion="28"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
        android:maxSdkVersion="32"/>

通过maxSdkVersion控制了这个权限在高版本Android上不生效。此时本框架在Android10-12上就会无脑提示没有权限(实际上是有权限的),跳设置页,因为WRITE_EXTERNAL_STORAGE是不生效的。所以我认为这是一个BUG,为了兼容也为了正确的权限请求,请移除在Android10-12之间会对WRITE_EXTERNAL_STORAGE发起权限请求的行为。

另:READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE本属于同一个权限组,申请权限的时候申请其中1个,另外一个也会同时获得权限,所以低于Android10的设备,其实也没有必要两个权限都申请,只申请READ_EXTERNAL_STORAGE就行。 由于PR在您那挂了许久没有人搭理,故再发一个issues进一步发起讨论。

willzhanglj commented 3 months ago

荣耀Android 13版本也会提示

yulu1121 commented 1 month ago

到现在也没理。。。我还以为权限框架的问题,他这个默认就要申请WRITE_EXTERNAL_STORAGE权限,而看APP设置已经申请。。