1
Features OP 突然间又可以了
加了 android:requestLegacyExternalStorage="true" 但是注释掉又没啥变化😂 |
2
kop1989 2021-12-26 21:25:02 +08:00 via iPad 1
1 、没能动态获取权限。ReadExternalStorage
2 、需要通过 provider 来获取,之后的 api 拿到的 url 都是相对路径了。 |
3
rosu 2021-12-27 07:56:18 +08:00 via iPhone 1
读肯定是可以读的,如果你只是需要显示到 iv 上,直接调用 iv 的 api 就可以了。如果你要自己操作数据,那需要 open input stream
|
4
Features OP |
5
unco020511 2021-12-27 11:00:09 +08:00 1
与分区存储有关( https://developer.android.com/training/data-storage?hl=zh-cn#scoped-storage)
android 权限系统经过不断更新,意在根据文件用途来区分是否需要权限,而不是根据存储位置区分. 在 api29(或更高)为目标平台的应用中,默认启用了分区存储. 分区存储简单点说就是 1:根据文件使用用途来区分你的存储位置,如果不需要与其他应用共享的文件(或媒体),你应该存储在私有目录(内部或者外部都有包含私有目录) 2:如果对其他应用有价值的文件(如媒体),或者说你愿意共享的文件,你应该存储在外部共享目录 3:访问私有目录无需任何存储权限;访问共享目录中归属于本应用的文件无需任何存储权限(api29 新特性:系统会将每个媒体文件归因于一个应用),访问共享目录中不属于本应用的文件,需要 'READ_EXTERNAL_STORAGE'权限(并且需要使用 MediaStore API) android:requestLegacyExternalStorage="true"是关闭分区存储 |